• ベストアンサー

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

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

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

私はVBとVBAの連携について、生半可の知識しかありませんが、VBでフォームモジュールを解放し、標準モジュールに、下記を貼りつけて実行してみました。 下記では省略してますが、コンボボックをクリックした時の値をシート名として取って、shにセットしてみてください。sh = "TEST"の右辺です。 Sub main() Dim xlApp1 As Object Dim xlbk As Object Dim xlsh As Object sh = "TEST" Set xlApp1 = CreateObject("Excel.Application") xlApp1.Visible = True Set xlbk = xlApp1.workbooks xlbk.open ("c:\my documents\aa1.xls") xlApp1.Worksheets("TEST").Cells(10, 1) = 999 xlApp1.Worksheets(sh).range("A1").Select End Sub

roba-kun
質問者

お礼

回答していただきありがとうございました。 また、お礼が遅くなり申し訳ありませんでした。 ご回答していただいた通りにしたら出来ました! 本当にありがとうございました。

関連するQ&A

  • エクセルシートでVBAについての質問です。

    VBA初心者です。 エクセルのシート上にコンボボックスを配置してリストを選択すると同じシート上のセルに選択されたリストが表示されるようにしたいのですが、よくわかりません。 コンボボックスのオブジェクト名は名前ボックスに表示される名前でいいのでしょうか? 詳しい方ご教授お願いします。

  • エクセルのシートにコンボボックスを配置しようとしています。

    エクセルのシートにコンボボックスを配置しようとしています。 コントロールツールボックスのコンボボックスは、見た目があまりよくないところが 気になります。 ドロップダウンのボタンのデザインが角ばってることや シートのフォントと同一のフォントに設定してもちょっと違う(なぜ?)とこなど、 気にいりません。 フォームのコントロールは名前が変更できず、VBの関数がドロップ1_Change()などとなるため、 後に管理しづらそうで心配しています。 コントロールツールボックスのコンボボックスの見た目を改善する方法、または、 フォームのコントロールの名前を変更する方法がありましたら、 教えてください!!

  • Excelでコンボボックスが沢山必要なときは

    お世話になります。 オラクルからコードと値を取ってきて、エクセルのシート上で表示や 選択をさせたいと思います。(一番左のセル) このときセルにアクティブXのコンボボックスを貼り付けて、表示は できたのですが、データが1000件くらいあるようで、それぞれに 1000個もコンボボックスを貼り付けるのが大変です。 何かよい方法はありませんか。 よろしくお願いします。

  • エクセルVBA コンボBOXの相互連動

    皆さんこんにちは。 エクセル2013を使用しています。 ネットや本では 地方名>都道府県名>市町村名のような 順にコンボボックスで行う絞り込み検索の方法が たくさん載っています。 コンボボックス1を選択しないとコンボボックス2・3の 選択肢は表示されないようなものです。 ですが、私がやりたいのは どのコンボボックスから選択しても 残りのコンボボックスが連動するものを作りたいのです。 おそらくやりたい事はオートフィルターだ!と思ったので 今、私の知りうる数少ない知識を駆使した結果がこれです。 (1)原本Sheetをコピー→コンボ用Sheetを作成 (2)コンボ用SheetのA~C列を列ごとに重複除去をし  除去した内容をE~F列に記載 (3)E~Fの内容をコンボボックス1~3のコントロールにする (4)コンボボックスのどれかを選択すると  そのコンボボックスのTEXTでオートフィルターがかかる、  原本Sheet対応列を絞り込み (5)コンボ用Sheetを削除 (1)~(5)エンドレス・・・みたいなコードでやりたい事に対応出来ましたが 何しろシートのコピー・削除が何回もあるので 重くて重くてとても使い物にはなりません。 どうにか重くならずに同じような作動をするコードはないでしょうか。 このような感じで原本Sheetは作成されております。 [原本Sheet]     A    B    C 1   駅名  顧客名  店舗名 2   ○    △    □ 3   ○    ▲    ■ 4   ◎    △    □ 5   ◎    ▽    ◇ 6   ●     ▽    ◆

  • Excel VBA

    Excelのコンボボックスについての質問です。 sheet(1)のA2~A20までコンボボックスに入る選択肢が入っています。 フォーム1のコンボボックス1にその選択肢を入れたいのですが、なるべく短いコードを教えていただきたいのですが…。 ちなみに私の知っているコードは コンボボックス1.Additem Range("シート1!A2") コンボボックス1.Additem Range("シート1!A3")      ・      ・      ・ という感じです。 どうかよろしくお願いいたします。

  • Excel VBA シートのコピー時に、シート上のコンボボックスもコピーしたい。

    こんにちは。 Excel VBAについて質問させていただきます。 やりたいことは、 シートAにボタンとコンボボックスを配置し、 コンボボックスには氏名の一覧を設定しています。 そこで、ボタンを押すとシートAをボタンとコンボボックスごと シートBという名前でコピーをしたいと思っています。 ActiveSheet.Copy Before:=Worksheets(1) でシート・ボタン・コンボボックスのコピーはうまく出来たのですが、 コンボボックスに設定していた氏名の一覧はコピーされていませんでした。 コピー先のシートのコンボボックスにもう一度氏名の一覧を 設定するしかないのでしょうか? それともシートのコピー時に何かいい方法があるのでしょうか。 宜しければアドバイスをお願い致します。 OSはWindows2000Pro Excelは2000です

  • Excelのワークシート上でコンボボックス

    お世話になります。 Excelのワークシート上にコンボボックスを配置して、ここからマクロを選択して呼び出すことは出来ますか? コンボボックスは配置できるのですが、マクロ名を設定する方法がわかりません。 エクセルのヴァージョンはExcell2000です。 よろしくお願いいたします。

  • エクセルVBA 別シートからのコンボボックス連動

    エクセルVBA 別シートからのコンボボックス連動について Book1(多人数入力用ブック) ・入力シート ・データ用シート Book2(反映用ブック) ・シート1 Book1にコンボボックスが2列 テキストボックスが2列 * 6行のユーザーフォームを作成しました。 コンボボックス1 コンボボックス2 テキストボックス1 テキストボックス2 コンボボックス3 コンボボックス4 テキストボックス3 テキストボックス4 ・ ・ ・ 左のコンボボックスで「あ」が選ばれたときには、右のコンボボックスで「あ行の顧客」・・・というように連動させたいと考えております。 データ用シートのデータは、   A      B          C 1 あ あ行で始まる顧客 か行で始まる顧客 2 か 3 さ 4 た 5 な 6 Private Sub UserForm_Initialize() Dim c As Range ComboBox1.RowSource = "データ用シート!A1:A9" End Sub Private Sub ComboBox1_Change() 'Dim Rng As Range 'Dim i As Long i = ComboBox1.ListIndex If i > -1 Then Dim c As Range Set Sh = Worksheets("データ用シート") Set Rng = Worksheets("データ用シート").Range("B2:I30") ComboBox2.Value = "" ComboBox2.RowSource = Rng.Columns(i + 1).Address End If End Sub 上記コードですと、コンボボックス2が入力シートのデータを表示してしまいうまくいきません。 欲をいえば、 Book1(多人数入力用ブック)入力シートの特定セルに コンボボックス2・テキストボックス1 コンボボックス4・テキストボックス3というように続けて1セルに反映 Book2(反映用ブック)シート1に コンボボックス2・テキストボックス1・テキストボックス2 を各1セル 1行に反映させたいと考えております。 まったく知識がないのですが 仕事上どうしても必要となったので、各種サイトを見よう見真似でやっております。 ご助力いただければ幸いです。

  • エクセル2010 シート上のコンボボックス

    エクセル2010を使用しております。 シート1にコンボボックス1(アクティブXコントロール)を設置しており、 コードは下記です。 Private Sub ComboBox1_DropButtonClick() Dim i As Long With Worksheets("シート操作").OLEObjects("ComboBox1").Object .Clear    For i = 1 To 100 .AddItem i Next i End With End Sub コンボボックス1のドロップボタンで リスト1~100の数字の中から、任意の数字を選び テキスト表示部分に表示させたいだけなのですが、 上記コードではリストから選択しても何も表示されません。 コードの誤りと詳しい説明を希望します。 よろしくお願いいたします。

  • エクセル VBA フォーム設定について

    いつもお世話になっています。 エクセル VBAでユーザーフォームについて教えてください。 あるシートのデータをフォームに読み込み、違うシートにそのデータを書き込んでいます。元データの列順と書き込むシートの列順が違うので、VBAで設定して使っています。 書き込みはうまくいっています。ただ、書き込む際にフォーム上で少しデータを修正して書き込みを行うのですが、編集したいフォーム上のテキストボックスをクリックすると、データの最後のほうにカーソルが飛んでしまいます。 テキストボックスをできるだけ大きくして対応していますが、限度があります。テキストボックスをクリックした際にデータの最後(文字データで言うと文章の最後を表示してしまう)まで動かずに、クリックしても先頭のままになるようにするにはどうすればいいのでしょうか。 同じように、コンボボックスもクリックするとリストの最後から表示されます。リストの先頭から表示させる方法を教えてください。

専門家に質問してみよう