- 締切済み
VBA 任意のセルにデータを転記する方法
Excel のユーザーフォームを使って、データの入力をしたいと考えています。 入力ボタンを押すと、テキストボックスに入力した内容が別シートのセルに転記されるものです。 指定したセルに追加する、1番下の行に追加する、はできるのですが、コンボボックスに入力した内容によって転記するセルを変える方法はありますでしょうか? 具体的に言うと、 ユーザーフォーム内のコンボボックスで 月(4月~3月)を選べるようにしているのですが 4月を選べば4月を入力するセルに。7月を選べば7月を入力するセルに転記したいです。 何かいい方法はありますでしょうか。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- HohoPapa
- ベストアンサー率65% (455/693)
>ユーザーフォーム内のコンボボックスで >月(4月~3月)を選べるようにしているのですが 添付のようなフォームを表示するところまではできている。 ということでいいですね。 また、コンボボックスの候補群に並んでいる月の名前と シートの名前が1対1で対応しているということでいいですね? ならば、 commandボタンを押下するときに、 コンボボックスで選択している月 (選択している行の文字列)は、 Me.ComboBox1.Text で取り出せます。 この文字列と同じシート名のシートに書き出すわけですから Dim TukiSheetName As String TukiSheetName = Me.ComboBox1.Text With ThisWorkbook.Sheets(TukiSheetName) 'ここに書き出すコード 例えば .Cells(1, 1).Value = Val(Me.TextBox1.Text) End With といったコードになりましょう。
- imogasi
- ベストアンサー率27% (4737/17069)
ユーザーフォームの、月を選択(決定)するテキストボックスの月でワークシート名を(VBAで)決め(選択し)、そのデータ最終行の次の行に、入力データを代入すればよい(私は転記という言葉を使わない、代入でしょう)。 月名(例4月か4かなど)と具体的なシート名(四月販売高とか四月実績とか)が質問に例示してないので、質問表現が未熟。それを教えてもらわないと回答は具体的にならず、質問者はVBAコードは自力で組めないのでは。 >任意のセルにデータを転記する は、VBAに少経験で、本心を伝えておらず、正しくは 「データの最終行の次行に、テキストボックスで入力したデータを転記」、ではないのか。 参考 最終行の次行にデータをセット。 Sub test01() Set sh = Sheets("4月") lr = sh.Range("A" & 100000).End(xlUp).Row MsgBox lr sh.Range("A" & (lr + 1)) = "入力データ" End Sub "入力データ” ー> の部分はユーザーフォームのコンボボックスやテキストボックスからとる。 データが数値の場合は、代入に先立ち、VAL( )をかましておく。 ー 質問で、 列が決まらないとコードは書けない。 シート名(1字1句まで)が回答者に伝わらないとコードは書けない。 これぐらいは質問に書いて、さらにむつかしそうな点を質問するのが、本コーナーの活用法だろう。