• ベストアンサー

exel vbaについて教えてください。

EXCEL2000のワークシート上にツールバーのフォームからボタン選択し追加させ、そのボタンを押すとフォルダが開くようにさせたいのですが、可能でしょうか?可能でしたら命令文を教えて下さい。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

○特定のフォルダを開ければ良い場合 (たとえばセルに記入した等の何かデータを拾ってそのフォルダを開きたい場合も同じ) 例:Cドライブのtestフォルダ Sub ボタン1_Click()  Dim ret  ret = Shell("explorer.exe " & "c:\test", vbNormalFocus) End Sub ○フォルダを選んで開きたい場合 Sub ボタン2_Click()  Dim Shell, myPath  Set Shell = CreateObject("Shell.Application")  Set myPath = Shell.BrowseForFolder(&O0, "フォルダを選択", &H1 + &H10)  If Not myPath Is Nothing Then Shell.Open myPath.Items.Item.Path  Set myPath = Nothing  Set Shell = Nothing End Sub

freewiljp
質問者

お礼

御忙しい中、有難う御座います。vba初心者ですので助かりました。

その他の回答 (3)

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

1つの決ったフォルダを開くのか、フォルダ一覧を出させて、選択させ、最終的にファイルを選択させるのか。 聞く前に自分のしたいことをもう少し幅広く説明できなきゃ。 下記のようなのは直ぐWEBで見つかるよ。 Sub test01() FolderSpec = "C:\Documents and Settings\XXXX\My Documents\" Set FolderDlg = Application.FileDialog(msoFileDialogFolderPicker) With FolderDlg '最初に表示するフォルダパス .InitialFileName = FolderSpec .AllowMultiSelect = False End With Result = FolderDlg.Show() If Result = -1 Then NewFolderPath = FolderDlg.SelectedItems(1) End If Set FolderDlg = Nothing End Sub

freewiljp
質問者

お礼

連絡が遅れてすみません。御忙しい中、有難う御座いました。vba初心者ですので助かりました。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.3

詳細は http://www.geocities.jp/cbc_vbnet/tips/dialog.html を参照してください。 Private Sub CommandButton1_Click() 'ファイルの保存(初期フォルダの指定) With Application.FileDialog(msoFileDialogSaveAs) '初期フォルダ設定 .InitialFileName = "C:\EXCEL\" & ThisWorkbook.Name 'ダイアログのタイトル .Title = "ブックを保存します" If .Show Then .Execute End If End With End Sub Private Sub CommandButton2_Click() 'ファイルを開く(初期フォルダの指定) With Application.FileDialog(msoFileDialogOpen) '初期フォルダ設定 .InitialFileName = "C:\EXCEL\" 'ダイアログのタイトル .Title = "選択したブックを開きます" '選択できるファイルの拡張子の選択 .Filters.Clear .Filters.Add "Excelブック", "*.xls;*.xlsx" .Filters.Add "すべてのファイル", "*.*" If .Show Then .Execute End If End With End Sub

freewiljp
質問者

お礼

連絡が遅れてすみません。御忙しい中、有難う御座いました。vba初心者ですので助かりました。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

>そのボタンを押すとフォルダが開くようにさせたいのですが、可能でしょうか? 可能ですが、どのような目的でフォルダを開くのでしょうか? それによって命令文は変わります。 1.エクスプローラーで特定のフォルダを開く。 2.現在のブックを保存するダイアログを特定のフォルダで表示する。 3.別のブックを開くダイアログを特定のフォルダで表示する。 4.別のファイル(ワード文書等)を開くダイアログを特定のフォルダで表示する。 5.挿入する画像を選択するダイアログを特定のフォルダで表示する。 その辺を補足してください。

freewiljp
質問者

お礼

連絡が遅れてすみません。御忙しい中、有難う御座いました。vba初心者ですので助かりました。

freewiljp
質問者

補足

そんなに選択肢があるんですね。現在しようとしているのは2番と3番です。初心者なもので御手数をかけてすみません。

関連するQ&A

  • vbaについて教えてください

    エクセルでワークシートに貼ったコマンドボタンをクリックするとユーザーフォームを呼び出してかつ、ユーザーフォーム上のコンボボックスに指定フォルダ下のフォルダを表示するものを作りました。 ユーザーフォーム上のコンボボックスに表示されたフォルダを切替選択するとリストボックスにそのフォルダ下のファイルを表示させたいのですがやり方がわかりませんので教えてください。

  • エクセルVBA ユーザーフォームのボタン

    ユーザーフォームにCommandButton1があります ワークシートにもCommandButton2があります ユーザーフォーム上のCommandButton1をクリックすることで、ワークシート上のCommandButton2をクリックするという命令は作れるのでしょうか? ワークシート上のCommandButton2をクリックした後の命令は出来ているのですが、そのコードをコピーしてユーザーフォーム上のCommandButton1のコードにコピーするしかないのでしょうか? 実行ボタン(CommandButton2)をワークシートに作成したので、 ユーザーフォームで入力→ ユーザーフォーム上のボタン(CommandButton1)をクリック→ ユーザーフォームは終了→ ワークシート上の実行ボタン(CommandButton2)をクリック してくれると良いかと思いました よろしくお願いします

  • VBAのコードについて教えてください。

    ユーザーフォームを作成したのですが、コードが分かりません教えて下さい。 ・ユーザーフォームは工場名を選択項目とし以下住所、電話番号等のExcelに記入してある情報が工場名コンボボックスより選択することによって、出てくるようにしたいのですが、可能ですか?個人情報はEXCELシート上にあり、随時追加されていきます。 また工場名のリストはexcelシートのsheet2にマスタとして登録されているところを参照するように設定したいです。

  • VBA シートの切り替えができないようにするには

    こんにちは。いつもこちらでお世話になっています。 現在、VBAでフォームを利用したマクロを組んでいます。 あるボタンを押したときにマクロが実行された後、終了ボタンを押すまでの間はアクティブシートを移動してほしくない場合、シートの切り替えができないように制御したいのですが、ワークシートに直接イベントとして記述したくない場合はどうしたら良いでしょう? いっそのこと、ウインドウからシート選択ができないように画面を操作すれば良いのでしょうか? その方法はどうやって記述すればいいのでしょうか? それとも、シート切り替えのイベントをフォームで感知することができるのでしょうか? 困っています、、どなたか助けてください。 ウィンドウからシート選択ができないようにする方法だけでも結構です。 よろしくお願いします。

  • ユーザーフォーム動作で○○○.xlsはすでにひらいています警告文の対策

    excel2000 windowsXPを使用しています。マクロ超初心者です。 1)ワークシートにユーザーフォームA が現れます。その中のコマンドボタンをクリックすると  a b c 3個のボタンが配置されたフォームB が現れます。  フォームBの aボタンをクリックすると処理用のシートが現れ、このシートに入力複写が完了したので 戻るボタンをクリックして、前のフォームBが表示されます。 問題はここでbボタンを押すと、「○○○.xlsはすでに開いています。2重にひらくと・・・」と警告文がでます。 そこでこの警告文が出ないように もし○○○.xlsが開いていないときは、開き、開いているときは開く命令をやめてその次の行からマクロを実行しなさいというスクリプトを作りたいのですが、どう書いたらよろしいでしょうか? 2)上記フォーム正常に動作していました。フォームの中のボタンを1個だけ削除しました。再度起動したところ 「実行時エラー指定されたオブジェクトをは見つかりません」と出てフォームの修正ができません。 すでに出来たフォームの修正はどうやったらよろしいでしょうか?

  • Excel VBAなんですけど…

    ワークシートにコマンドボタンを配置して、ユーザーフォームを呼ぶという、簡単なことを忘れてしまいました。どなたか教えてください。お願いします。

  • VBAでEXCELに埋め込んだPDFを開く方法

    あらかじめPDFファイルをシート内に貼り付けておき、 ユーザーフォーム上のボタンを押した時に、 PDFファイルを開くマクロを探しております。 参照パスを指定のフォルダにしなくても良い方法として あらかじめPDFファイルを貼り付ける事を考えました。 尚、使用しているexcelは2010です。

  • VBAに関して

    EXCEL2010にて簡単にボタンで操作できるようにVBAを作っています。 なかなかにうまくいかないのですが、アドバイスなどいただけたらと思います。 やりたいこと  ・A1にシート名を選択するドロップダウンリストがあるのですが、それを選択してボタン「ジャンプ」を押すとそのシートに飛んでくれるようにしたい Sub シート選択() a = Range("a1").Value Sheets(a).Activate End Sub 上記のようにやってみているのですが、インデックスが有効範囲にないと;; よろしければ教えてください。 シート名は「H25 1月」みたいな感じです。 よろしくお願いいたします。

  • Excel97で「ブック内のキーワード検索」がしたい(VBA?)

    Excelの表を、月別にシート分けしています(計12枚) 自宅→Excel2002、会社→Excel97を使っているのですが、 複数のシートにわたってキーワード検索したいと思い、自宅のExcel2002で[編集]-[検索]-「ブック」を指定して検索しました。 ところが会社に行って同じ操作をしてみると、Excel97のためシート内検索しか出来ません。 Shiftキーで複数のシートを選択してから検索をしてみましたが、思うような結果になりませんでした。 (Excel2000だと複数シート選択-検索が出来るようなのですが・・) 会社のExcel97で、Excel2002のような「ブック内検索」がしたいのです。 VBAのユーザーフォームで作成するしかないのでしょうか? もしそうであれば、どのように作成していけばよいのか、わかる方ご教授ください<(_ _)> 【希望】 ・テキストボックスにキーワード(氏名・数字など)を入力→検索ボタンを押す→該当のセルがアクティブになる(該当セルが複数あれば、検索ボタンを押すたびにアクティブになる、など) ・「該当のデータはSheet1のC5とSheet3のC10にありますよ」みたいな感じで、データの位置が表示される、など よろしくお願いいたします。

  • VBAで非表示のブックからシートの名前だけ抽出する方法

    WindowsとExcel2003を使用しています。 (1)まず、VBAでフォームを作成しその上にリストボックスを1つ作ります。 (2)そのリストボックス内に自フォルダにあるファイル名の一覧を表示します。 (3)その一覧から1つだけエクセルファイルを選択し、実行ボタンをクリックすると新しいフォームが開きます。 (4)そのフォームのリストボックス内に、選択したファイル内の全シートの名前を表示させようとしています。 (3)までは何とか作成することが出来て、動作しています。 (4)で、選択したエクセルファイルのシート名を取得するときに、当該bookを開くことなく、もしくは使用者には選択したbookが立ち上がったことを気づかせずにシート名だけを取得したいと考えていますが、この方法がわかりません。 さらには、取得したシート名から1つを選択し、それを変数に格納して使おうと思っています。 FileSystemObjectというのを使用するのでしょうか? ExcelVBAをはじめて触るため、手探り状態です。情報が不足している場合はすぐに補足します。 ご存知の方、ご教示よろしくお願いします。

専門家に質問してみよう