- ベストアンサー
テキストボックスの値を スプレッドシートへ表示するには?
Excel2003 VBA ユーザーフォームへ Textbox1 Textbox2 Textbox3 と スプレッドシートを配置しています。 Textboxの値を スプレッドシートの指定した位置に表示したいのですが コードはどの様に書いたらいいのですか? 例えば… Textbox1 スプレッドシートの A1 Textbox2 スプレッドシートの B1 Textbox3 スプレッドシートの C1 VBAまだ初心者です。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
例えば、CommandButton1のClickイベントで転記する場合。 '---------------------------------------------- Private Sub CommandButton1_Click() Spreadsheet1.Cells(1, 1).Value = TextBox1.Text Spreadsheet1.Cells(1, 2).Value = TextBox2.Text Spreadsheet1.Cells(1, 3).Value = TextBox3.Text End Sub '------------------------------------------------- 外しましたらご容赦願います。
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
シートへ貼り付けたテキストボックスではプロパティにLinkedCel ガあり、ここにA1と入れておけばよいのです。 ーー フォームUserform1に貼り付けたテキストボックスなら、 ContolSourceにB1とかを設定しておけば良いのでは。 (エクセル2002)
お礼
imogasiさん 有難うございました なるほど そんな機能も有ったのですね 設定確認して使ってみます。
- zap35
- ベストアンサー率44% (1383/3079)
#01です。 そうですか。私の環境で「MS Office Spreadsheet 11.0」で動作確認したときには動きましたよ。なおご承知とは思いますがマクロが動作するのはTextBoxからフォーカスが他へ移るときです。 >何が いけないのでしょうね・・・ 何回かユーザーフォームにSpreadsheetを貼り付けた等のためにSpreadsheetの名前が変わっているのではないでしょうか。 VBE画面のユーザフォームモジュールシートでオブジェクトのプルダウンリストを見て、SpreadsheetのObject名を確認してみてください。 全く新規のブックにTextBoxとSpreadsheetだけのフォームを新規に作成してテストしてみるのも一策とは思いますが…
お礼
zap35さん 有難うございます いろいろ試したのですが、Verの違いから来る エラーみたいでした 当方Excel2000 Spreadsheet 10 Excel2000から作成したSpreadsheet は2002だとエラーが起きます。 Excel2002から作成したSpreadsheet は問題なく表示し 結果的にExcel2000は操作は出来ても 編集は出来ないみたいでした。
- zap35
- ベストアンサー率44% (1383/3079)
例えば Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) Spreadsheet1.Sheets("Sheet1").Range("A1").Value = TextBox1.Value End Sub
お礼
早々の回答有難うございます。 しかし 「実行時エラー438 オブジェクトは、このプロパティーまたは メッソドをサポートしていません」との エラーが出ます いろいろ 試したのですが 旨くいきません 何が いけないのでしょうね・・・
お礼
onlyromさん 有難うございました。 基本記述と同じなのですね 使わせていただきます。