- ベストアンサー
どなたか教えてください。
VB初心者です。 VBからExcelを操作したいのですが、VB上でExcelファイルを選択して開きたいんです。参考書には決まったExcelファイルを開くようなコードはあったんですが、その都度開くファイルが変わる場合というのがわからないんです。・・・・どうしたらいいのか見当がつきません。どなたか教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
開くエクセルファイルを人間に選ばせるのなら コモン・ダイアログ・コントロールを使います。 1.「プロジェクト」→「コンポーネント」で「Microsoft Common Daialig Control」を追加します。 2.フォームにコモンダイアログを張りつけます。 3.実行時に「開くボタン」を押されたら、コモンダイアログを呼び出してファイル名を取得します。(詳しい使い方はヘルプを見てください。サンプルのソースも付いています) 4.取得したファイル名(=エクセルファイル)でエクセルファイルを開く。 という手順になります。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17070)
VBAでテストしてますが、VBでも同じと 思います。Sheet1の代わりにForm上に ボタンを貼りつけてください。(今気がついて済みません) No1の方のご教示が既に出ています。これだけで目的のことが出来るようになりましたか。出来たのであれば、相当良く出きる方と思います 。であれば私のような素人が出る幕ではないのですが、もし滞っておられるなら、下記を参考にして、前へ進んでください。 私も手探りで、数十分いろいろ試して下記まで来ましたのですが。 下記ではエクセルを開くと、下記(13)になるようにするのは組みこんでいません。 (1)ワークシートを開き、メニューバーの余白で右クリック。 (2)VisualBasicツールバーが出る。 (3)金槌とスパナのアイコンをクリック。 (4)コントロールツールボックスのコマンドボタン(長方形)をクリック。 (5)ワークシート上で+が現われるが、マウスでこすって右下へ引っ張る。 (6)コントロールツールボックスの右下隅にある金槌とスパナのアイコンをクリック(デザインモードを解除すると消えるが驚かないで良い)。 (7)リストボックスの後半「M」の中の 「MicrosoftCommonDialogControl、Version6.0」をクリック。 (8)+をワークシート上でどこでもよいのでマウスでこすって右下へ引っ張る。 (9)コマンドボタンをダブルクリック。 (10)VBE画面になり Private Sub CommandButton1_Click() Endが出る。 (11)そこの中間に下記コーディングをいれる。 Private Sub CommandButton1_Click() CommonDialog1.ShowOpen fn = CommonDialog1.Filename MsgBox fn ' fs = Chr(34) & fn & Chr(34) ' MsgBox fs Workbooks.Open fn ActiveWorkbook.Activate End Sub (12)デザインモードをクリックして解除(三角定規の凹みをなくす) (13)シートのコマンドボタンをクリック。 (14)おなじみの「ファイル名を聞く」ウインドウが出るのでファイル(Book)名(.xls)を指定し、「開く」をクリック (15)指定したブックが開きシートがウインドウ画面に出る。 (注)開いたブックのシートの画面を最前面に持ってくるのが心もとない。
お礼
お礼が遅くなりました。申し訳ありません。お二方からご意見をいただきまして、無事に課題をクリアできました。あともう一息でひとまず完成です。どうもありがとうございました。
- imogasi
- ベストアンサー率27% (4737/17070)
VBAでテストしてますが、VBでも同じと 思います。Sheet1の代わりにForm上に ボタンを貼りつけてください。(今気がついて済みません) No1の方のご教示が既に出ています。これだけで目的のことが出来るようになりましたか。出来たのであれば、相当良く出きる方と思います 。であれば私のような素人が出る幕ではないのですが、もし滞っておられるなら、下記を参考にして、前へ進んでください。 私も手探りで、数十分いろいろ試して下記まで来ましたのですが。 下記ではエクセルを開くと、下記(13)になるようにするのは組みこんでいません。 (1)ワークシートを開き、メニューバーの余白で右クリック。 (2)VisualBasicツールバーが出る。 (3)金槌とスパナのアイコンをクリック。 (4)コントロールツールボックスのコマンドボタン(長方形)をクリック。 (5)ワークシート上で+が現われるが、マウスでこすって右下へ引っ張る。 (6)コントロールツールボックスの右下隅にある金槌とスパナのアイコンをクリック(デザインモードを解除すると消えるが驚かないで良い)。 (7)リストボックスの後半「M」の中の 「MicrosoftCommonDialogControl、Version6.0」をクリック。 (8)+をワークシート上でどこでもよいのでマウスでこすって右下へ引っ張る。 (9)コマンドボタンをダブルクリック。 (10)VBE画面になり Private Sub CommandButton1_Click() Endが出る。 (11)そこの中間に下記コーディングをいれる。 Private Sub CommandButton1_Click() CommonDialog1.ShowOpen fn = CommonDialog1.Filename MsgBox fn ' fs = Chr(34) & fn & Chr(34) ' MsgBox fs Workbooks.Open fn ActiveWorkbook.Activate End Sub (12)デザインモードをクリックして解除(三角定規の凹みをなくす) (13)シートのコマンドボタンをクリック。 (14)おなじみの「ファイル名を聞く」ウインドウが出るのでファイル(Book)名(.xls)を指定し、「開く」をクリック (15)指定したブックが開きシートがウインドウ画面に出る。 (注)開いたブックのシートの画面を最前面に持ってくるのが心もとない。
お礼
遅くなりまして申し訳ありません。試行錯誤の結果、どうにか先へ進むことができました!!コモンダイアログ・・・便利ですね。ゴチャゴチャしていたフォームも見違えるようにすっきりです。どうもありがとうございました。