質問: excel vba セルに既に入力されている文字に文字を追加する excelでマクロを作成しています ユーザーフォームを使用し、コンボボックスでセルを選択し、その選択したセルにテキストボックスから文字を入力できるようになっています。 選択したセルが空白ならそのままテキストボックスの文字を挿入し、 もし選択したセルにすでに文字が入力されている場合は、すでに入力されている文字+テキストボックスの文字、という風にしたいと思っています。 例:選択したセル 「ガソリン代」 テキストボックス「高速代」 → 『ガソリン代高速代』 その次も同じセルを選択した場合 テキストボックス「電車代」 → 『ガソリン代高速代電車代』 このような感じです。 文字をどこかに代入してテキストボックスの文字と&で結んで入れてやれば良いのかもしれませんがつまづいております。 ぜひ助けていただければうれしく思います よろしくお願いします。
回答: #01です。 userformにtextbox1(費目)とtextbox2(代金)とcommandbutton1があるとします。費目はa1セルに、代金はb1セルに連結してゆくなら、こんな感じでしょうか。 private sub commandbutton1_click() range("a1").value = range("a1").value & textbox1.value if range("b1").hasformula then range("b1").formulalocal = range("b1").formulalocal & "+" & textbox2.value else range("b1").formulalocal = "=" & textbox2.value end if end sub hasformulaプロパティで「数式が入力されているか」を判断できます。数式がない場合は先頭に「=」をつけて数式にしています。 またtextboxの値は文字列です。数字以外が入力されると式の答えは不正になりますからisnumericなどを用いてチェックする方が良いでしょうね。