• ベストアンサー

Excelのシート上にtextboxを作成する方法

VB.netのコードからExcelのシート上にtextboxを作成する方法を教えてください。 新規シートを作成するところまでは自力で出来ています。 どなたかアドバイスお願いします。 ※参考ページなどありましたらお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • takkunnet
  • ベストアンサー率74% (32/43)
回答No.3

#1です。 先頭行に「Option Strict On」がありませんか? これは「遅延バインディングを禁止」する命令です。 それがある場合には 「ExlSheet.OLEObjects.Add("Forms.TextBox.1")」 は直接呼び出せません。。。。 「Option Strict On」の行を取り除くのもひとつの解決策だとは思いますが、取り除かない場合は以下のようにしたらできると思います。 Dim objOLE As Excel.OLEObjects objOLE = Ctype(ExlSheet.OLEObjects,Excel.OLEObjects) objOLE.Add("Forms.TextBox.1") ではどうでしょうか? また、#2さんの言われる「テキストボックス」と私の言う「テキストボックス」は基本的には異なるオブジェクトですが、使用方法は同一となりますので、ご使用になりたいオブジェクトを利用されることをお勧めします。 (#2さん=Shape、私=OLEObject)

tarotarotarou
質問者

お礼

「Option Strict On」を取り除かない方法で解決しました!遅延バインディングについても勉強してみます。 takkunnetさんありがとうございました。 お礼が遅くなりすみません。 また宜しくお願いします。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

ExlSheet.Shapes.AddTextbox(1, 100, 100, 200, 50) ではどうでしょう AddTextbox(Orientation, Left, Top, Width, Height)

tarotarotarou
質問者

お礼

BLUEPIXYさんアドバイスありがとうございます。 Shapeのほうも勉強してみます。

全文を見る
すると、全ての回答が全文表示されます。
  • takkunnet
  • ベストアンサー率74% (32/43)
回答No.1

Sheet1上にTextBoxを追加する場合は Call Sheet1.OLEObjects.Add("Forms.TextBox.1") で追加できます。 作成する位置なども調整可能です。 詳しくは Excel VBA のヘルプ(OLEObjectsで調べると良いです)を参照することをお勧めします。

tarotarotarou
質問者

補足

takkunnetさんありがとうございます。 下記が作成中のコードなのですが、テキストボックスを生成する箇所のコードで"遅延バインディングを使用できません"とのエラーが発生してしまいます。 シートの宣言の箇所でのミスでしょうか? '表作成 Private Sub Button1_Click(~) ~ Dim Exl As New Excel.Application Dim ExlBook As Excel.Workbook Dim ExlSheet As Excel.Worksheet Exl = CType(CreateObjec("Excel.application"), Excel.Application) ExlBook = CType(Exl.Workbooks.Add, Excel.Workbook) ExlSheet = CType(ExlBook.Worksheets(1), Excel.Worksheet) 'テキストボックスを生成 ExlSheet.OLEObjects.Add("Forms.TextBox.1") ←エラー Exl.Application.Visible = True End Sub

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • TextBoxにExcelの背景色を取得

    こんにちは、VB2008を使用しています。 TextBoxにExcel内の文字と、その文字が入っているセルの背景色を取得しようとしています。文字の取得は TextBox1.Text = sheet.Range("A1").Value で出来るのですが、背景色の取得は TextBox1.BackColor = の = 以降がわかりません。どなたか教えて頂けなしでしょうか?

  • エクセル マクロ Sheet上のTextBox

    シート上にTextBoxがありそこに 名前を記載しています。 そこで今回悩んでいるのが 次の人がこのエクセルBookを開けたとき 前の人の名前があるのにそのまま記載してコピーしてしまう ケースが多いので、Bookを開いた時にTextBox1..Text = "" のように空白にしたいです! どのようにすれば良いか悩んでいます。 Private Sub Worksheet_Activate() TextBox1.Text = "" End Sub これだと他のシートから戻るときにはTextBox1は空白になりますが・・・ 開いた時に空白が良いです!! すいません教えて下さい

  • textboxの繰り返し連結処理

    textboxの繰り返し連結処理 Visual Web Developer 2008を使いWebアプリケーション開発中です。言語はVBです。 複数のtextboxに入力された文字を連結する方法が分かりません。 ↓このようにtextboxに入力された文字   1 2 3 4 5 1 あ|い|う|え|お 2 か|き|く|け|こ 3 さ|し|す|せ|そ 4 た|ち|つ|て|と 5 な|に|ぬ|ね|の Buttonをクリックしたら“あいうえおかきくけこさしすせそ…”というtextboxの連結処理をしたいのですが、textboxの数が200~300と多いので、繰り返し処理を使い簡単にできないでしょうか? 初心者なので分かりづらい質問で申し訳ありません。 参考になるページやコードがあったら教えて下さい。 よろしくお願いします。

  • EXCEL VBAのTextBoxプロパティについて

    こんばんは。 シート2のセルF3に「11時08分54秒」と表示されており、 これをUserForm1のTextBox4にも「11時08分54秒」と 表示させたいのですが属性の違いでしょうか?うまく表示 できません。 コード:UserForm1.TextBox4.Text = Sheet2.Range("F3").Value TextBoxのプロパティをいじったり、ネット検索してもヒットせず 進展しないため、アドバイス願います。

  • VBからエクセルファイル作成

    VBでエクセルファイルを作成する処理を作っていて、ファイルは作成されるのですが、自動的にシートが3シート作られます。 作成時にシート数を指定することはできるのでしょうか? ネットでいろいろ調べるのですが、VBからのエクセル操作について書かれているサイトがあまりみつかりません。 よいサイトがありましたら、あわせて教えてください。 よろしくお願いします。

  • TextBoxに入力した文字をExcelに書き込むには?

    VB2008を使用しています。 VBフォーム内のTextBox1に入力した内容(例 りんご)をBottanを押すことによりExcelの指定したセル(例 A1)に書き込んで保存する方法はありますでしょうか? 現在、以下のところまでは出来ています。 ' excelを定義 Dim excel As New Microsoft.Office.Interop.Excel.Application ' excel testをファイルから開く Dim book As Microsoft.Office.Interop.Excel.Workbook book = excel.Workbooks.Open("C:\test.xls") ' 1枚目のワークシートを取得 Dim sheet As Microsoft.Office.Interop.Excel.Worksheet sheet = CType(book.Worksheets.Item(1), Microsoft.Office.Interop.Excel.Worksheet) Excelの開放からsheetの取得までは出来たのですが、ここから先がわかりません。よろしくお願いいたします。

  • excelのsheetを表示しないでUserFormで更新

    今日 2個目の教えてです。 一つ目もまだわからない状態なんですが お分かりの方お教え下さい。 excelを起動するとUserFormのみが起動して(excelシートは開かない)textbox1にコードを入力すると excelシートからtextbox2にデータをひっぱってきます。 そのtextbox2のところを別のデータを入力してコマンドボタンを押すと シートの値が置き換わるようにしたいのですがお教え願えないでしょうか。

  • エクセルでグラフを新規シートに作成する方法はありますか?

    エクセルでグラフを新規シートに作成する方法はありますか? エクセル2007を使っています。OSはXPsp3 グラフを新規シートに作成することが過去のエクセルでは可能でしたが(データを範囲指定して「グラフの作成」-「新規シートで作成」というコマンドが選べたと思うのですが)、2007ではできないのでしょうか?データのあるシート上で作成することしか出来ないのですが。グラフウィザードとかはありません。 2007版で改悪された印象しかなく、マイクロソフトには怒りを覚えます。 どなたかおわかりの方、新規シートでグラフを作成する方法がありましたらご教授ください。 よろしくお願いいたします。

  • エクセルSheetのTextBoxのTextを参照するには??

    エクセルSheetのTextBoxのTextを参照するには?? アクセス(v2010)のVBAで、エクセルファイルのSheet上の テキストボックスの文字列を設定・変更したいと思います。 Cellについては、objSheet.Range("M2").Value で できますが・・・・ ご教示ください。

  • visual basic6.0とエクセルのシートについて

    はじめまして、こんにちは タイトルの通り、VBとエクセルについてなのですが、 VBのコンボボックスを変化させると(1、2、3・・・のように)、エクセルのシート(すでにシート名は1から順に名前をつけました)も1、2、3・・・とかわり、そのシートのデータを表示させるようにしたいのですが、どのようなコードを書いたらよいか分かりません。 どなたか解る方がいらっしゃいましたら教えてください。よろしくおねがいします。

このQ&Aのポイント
  • WRC-X1800GSを使用中でWi-Fiの入りが悪い部屋がある場合、もう一台WRC-X1800GSを設置してメッシュWi-Fiにすることは可能ですか?それとも他の製品を購入して接続する必要がありますか?
  • WRC-X1800GSはメッシュWi-Fiに対応しているので、もう一台設置してメッシュWi-Fiにすることができます。
  • もしWRC-X1800GSが対応していない場合でも、他の製品を購入して接続することで2台設置することができます。
回答を見る