• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:クロ(VBA)を使用してフォルダ内のファイルを検索し、開きたい)

クロ(VBA)を使用してフォルダ内のファイルを検索し、開きたい

このQ&Aのポイント
  • エクセルで個人データを管理する際、VBAを使用して指定された個人のファイルを開くプログラムを作成したいです。
  • エクセルのフォームを使用して、ラベル、テキストボックス、コマンドボタンなどを使って外見を作りましたが、プログラムのコード部分が分かりません。
  • 他の方法でも個人のファイルにアクセスする方法があれば教えてください。エクセルファイルでハイパーリンクを使用しても、OKがもらえませんでした。

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

  • ベストアンサー
  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.1

>プログラムで1000と入力し表示するように入力すると、Aさんのファイルが開くというしくみ 1)先ず、[ツール(T)] - [マクロ(M)] - [新しいマクロの記録(R)...] で、「Aさんのファイルが開く」部分の記録を採ってください。 2)(1) により、 ChDir "D:\hoge" Workbooks.Open Filename:="D:\hoge\1000 Aさん.xls" というような コード が得られるかと存じます(「D:\hoge」は「1000 Aさん.xls」が入っている フォルダ)。 3) >ラベル、テキストボックス、コマンドボタンで外見までは作れた のでしたら、VBE(Visual Basic Editor)の [UserForm1] - [CommandButton1] を [右クリック] - [コードの表示(O)] を クリック すると、 Private Sub CommandButton1_Click() End Sub という コード が現れます。 4)(3) の コード に、(2) の コード をそのまま挿入すると、[UserForm1] 上の「表示」と記された [CommandButton1] を クリック すると、「Aさんのファイルが開」きます。 5)ここで、ご要望は、「1000と入力し」ですから、「1000 Aさん.xls」の部分を、[UserForm1] - [TextBox1] から引用する必要があります。 6)ということで、 Workbooks.Open Filename:="D:\hoge\" & UserForm1.TextBox1.Value & ".xls" のような具合で、実情に応じた コード を見つけてみてください。

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

その他の回答 (3)

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.4

>。(エクセルファイルでハイパーリンクで直で飛ぶように設定したりもしたんですが、OKがもらえませんでした。) どの道、1000の管理番号とAさんというファイル名の関連する一覧表が必要ですよね。 例えばですが   A     B      C 管理番号 ファイル名  ハイパーリンク 管理番号 ファイル名 10000   A 10001   B ・・・と3行目以降に一覧表を準備しておいて(もちろん別シートでもかまいませんが) A2セルには、入力規則で管理番号を選択 B2セルにはVlookup関数でファイル名を表示 C2セルに =HYPERLINK(A2,"ファイルへのパス¥"&B2)とか入れて C2セルをクリックしては如何でしょうか? B2セルに =HYPERLINK(A2,"ファイルへのパス¥" & Vloolup関数) でも十分かと思いますが? もちろん、Userforom上で同様の動作は可能ですが、これだけのために Userformを開くボタンをクリックする動作を加えても何かメリットがあるのかと思いますが。

すると、全ての回答が全文表示されます。
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.3

今どうなっているのか,具体的な状況のご説明が >個人のデータを同一フォルダで管理しています。 これでは全くイミフメイなので,次のように状況を設定します。説明の通りに作成してください。 1.マクロを登録したブックを任意のフォルダに入れる。 2.同じフォルダに「1000Aさん.xls」「1001Bさん.xls」「1002Cさん.xls」の3つのエクセルブックを入れる。 3.UserFormにTextBox1とCommandButton1を配置する 手順: Visual Basic Editorの画面で,UserForm上に配置したCommandButton1をWクリックして次の通り作成する。 Private Sub CommandButton1_Click()  dim r as string  dim myPath as string  if textbox1 = "" then exit sub  myPath = thisworkbook.path ’または各ファイルを保存したフォルダのパス  r = dir(myPath & "\" & textbox1 & "*.xls")  if r = "" then   msgbox "その人のファイルはありません"   exit sub  end if  workbooks.open filename:= myPath & "\" & r End Sub なにか「それでは困る」のでしたら,上述の説明を参考に「具体的に今どうなっている」のを「どうしたい」のか,頑張って日本語で説明を考えてください。 サンプルマクロを元に自分で考えてやり直してみたけど出来なかったなら,「今こういうマクロを自分で書いてみた」「それはこれこれの状況でこういう具合にしたかったからだ」でも「実際に動かしてみたら,こうなるつもりだったのにこういう結果になった」といった具合に,目に見えるように説明してみてください。 作成したユーザーフォームを実際に呼び出して使うには,例えば標準モジュールに sub Macro1()  Load UserForm1  UserForm1.show vbmodeless End Sub のようなマクロを用意しておき,このマクロを実行します。 >それ以降のコード入力がちんぷんかんぷんで分かりません。 それを全部教えてくださいと言いたいのでしたら,ちょっと問題外です。 例えばここいら辺りを参考に,順番に勉強してみてください。 http://www.moug.net/tech/exvba/0091.htm

すると、全ての回答が全文表示されます。
  • mar00
  • ベストアンサー率36% (158/430)
回答No.2

私もそんなに知っている方ではないのですが ユーザーフォームのコマンドボタンをダフルクリックすると Private Sub CommandButton1_Click() End Sub がでてくるので Private Sub CommandButton1_Click() FILE_NAME = TextBox1 & ".xls" Workbooks.Open Filename:="C:\****\****\*****\" & FILE_NAME Unload Me End Sub ****の部分はファイルの保存してあるフォルダを指定して下さい。 エラーの処理はしていません。

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

関連するQ&A

  • フォルダー内のファイルとリンクするマクロVBA

    エクセルのマクロ機能を使い、エクセルのセルに管理番号入力し選択してマクロ実行すると、 自動でセルに入力した管理番号と同じフォルダー名の物を指定した場所に作成し、ハイパーリンクするVBAを 見よう見まねで作成しました。 この作成したVBAに追加機能を付けたいのですが、 WEBで検索したのですが、なかなか実行したい事が合う内容のものが見つからず、 マクロ初心者で何をどうすれば良いのか解りません。 大変申し訳ありませんが、どなたか教えて頂けませんでしょうか? 追加したい機能は、例としてA列の4と5の行を結合(結合しない場合もある)して管理番号を入力し、 自動で管理番号名のと同じフォルダーを作成しハイパーリンクした後に、 手動で、作成したフォルダーの中にファイルを入れる。 その後、行に同じファイル名を入力し、その行を選択してファイル名が同じ物があればハイパーリンクする様にしたい。 添付の画像ですと、管理番号を付けるのはA列で順番に番号を付けていきます。 1つのフォルダーの中に複数ファイルを入れる場合は、列を結合して1つの管理番号にし、 同じ行に並ぶフォルダーのE列(列の場所は変わる場合もあり)にフォルダーの中のファイル名を入力して、 フォルダー内同期リンク実行ボタンを押してファイルをハイパーリンクしたい。 ※管理番号で列に対し行は1:1の時もあれば、ファイルの数により、列を結合し1:2~1:10以上もある。 ※自動で管理番号名のと同じフォルダーを作成しハイパーリンクするVBAは下記で作ったのですが、   それをWEBで、似た様な内容のものを少し参考に編集しると、現在の機能も使えなくなってしまったりと困っています。   難しい。 Sub MakeHyLink() Dim wkStr As String If ActiveCell.Column <> 1 Then Exit Sub If ActiveCell.Value = "" Then MsgBox "アクティブセルは未入力、やり直し" Exit Sub End If wkStr = ThisWorkbook.path & "\TEST\" & ActiveCell.Value If Dir(wkStr, vbDirectory) = "" Then MsgBox "フォルダー:" & wkStr & vbLf & " を、作成します。" MkDir wkStr Else MsgBox "フォルダー:" & wkStr & vbLf & " は、存在します。" End If ActiveSheet.Hyperlinks.Add Anchor:=ActiveCell, Address:=wkStr End Sub

  • 特定のフォルダー内のエクセルファイルを開くVBA

    たとえば C:\My Documents\データ というフォルダーには20~30のエクセルファイルが入っています ファイルの名前は「えくせる なんばー101」などという名前になっています 「えくせる なんばー」までは共通で「101」の部分はそれぞれランダムな数字が入っています ランダムなファイル名なのでファイルを捜して開くのが大変です インプットボックスなどで 「101」の部分を入力すれば該当ファイルが開くような マクロを作りたいのですが (続きナンバーにして フォルダの整列をすれば捜しやすいのですが ネットワーク上の共有フォルダなので勝手にファイル名を変えることが出来ないのです) VBA初心者なのでよろしくお願いします

  • Excel VBAで同じフォルダ内のファイルを開くには?

    Windows2000、Excel2000を使用しています。 「経理」というフォルダに「見積」「請求」の2つのExcelファイルがあります。 「見積」から「請求」を開くマクロを作りたいのですが、どうすればいいでしょうか? 「経理」フォルダは場所が変わることがあるので、パスをどうすれば良いかがわからず苦しんでいます。 VBAはまったくの素人で、本を見ながら挑戦しているのですがうまくできないのです。 どうかよろしくお願いします。

  • VBAフォルダやファイル操作について

    VBA初めての初心者です。 VBAのフォルダとファイル操作関連の質問です。(初心者です) 【やりたいこと】 画面から、 入力フォルダのパスを入力する・・・(1) 出力フォルダのパスとファイル名を入力する・・・(2) ・処理概要 入力されたフォルダ内のファイルを順次読み込み、 リネームして、出力フォルダに追加出力する。 (1)フォルダ内全ファイルを出力して終了する。 追加処理として、 (1)を複数入力できるようにしたいと思います。 ・詳細処理 出力フォルダのファイルネームは、連番であり、 画面での入力(2)ファイル名から連番したファイル名(+1していく) 出力するデータ内容は(1)のコピーのままでよい。 入力されたフォルダ内の全てのファイルを実行して終了する。 このようなプログラムなのですが、 初心者で、 わかりません。 思うようにコーディングしても 動きません???? どのように コーディングすればいいですか?

  • エクセルVBA自動ハイパーリンクフォルダー指定場所

    管理台帳を作成したく、下記のVBAを作りました。 マクロ内容は、Aセルに管理番号を入力しマクロ実行ボタンにて、 入力した番号と同じフォルダーを作成しハイパーリンクする自動フォルダー作成&ハイパーリンクマクロです。 現在のフォルダー作成場所はローカルのDドライブ直下に作る様に指定しているのですが、 エクセルVBAがある場所と同じ場所に、上記のマクロで作るフォルダーが出来る様にしたいのですが、 見よう見まねでVBAを何とか作ったのですが、知識がなくこれ以上が解りません。 出来れば、下記のVBAを編集して頂、教えて頂いたVBAをそのままコピペすれば使える状態で教えて頂ければ助かります。 宜しくお願い致します。 Sub MakeHyLink() Const path As String = "D:\" Dim wkStr As String If ActiveCell.Column = 1 Then wkStr = path & ActiveCell.Value If Dir(wkStr, vbDirectory) = vbNullString Then MsgBox wkStr & "フォルダがありません。作成します。" MkDir wkStr Else MsgBox wkStr & "フォルダは存在します。" End If ActiveSheet.Hyperlinks.Add Anchor:=ActiveCell, Address:=wkStr End If

  • 同じ名前のフォルダーとテキストをリンクさせるVBA

    エクセルのマクロ台帳と事前にフォルダーを作った物とを ボタンを押す事により、フォルダーとテキストをリンクする様にしたいのですが、 VBA初心者でどうすれば良いか解りません。 どなたか保存先位を修正すれば良い位のVBA例を教えて頂けないでしょうか? 事前準備: フォルダーを指定の場所に保存しておく。 仮:D:\TEST\AA11111 ← リンクしたいフォルダー 内容: (1)添付資料の様に台帳を作成し、セルAにリンクさせたいフォルダー名「AA11111」を入力。 (2)入力したセルを選択し、マクロ実行ボタン「ファイルリンク」を押すと保存しておいた  D:\TEST\AA11111と台帳に記載したフォルダーと同じ名前の「AA11111」テキストがハイパーリンクする。 (3)その後、上記と同じ様にD:\TESTの中にあるフォルダーと、セル入力した同じ名前のフォルダー名とをリンク

  • 【エクセルVBA】ファイル参照後にデータ取り込み

    はじめまして。マクロ素人&勉強中です。 現在、メインプログラム(エクセルVBA)から、他のフォルダ内にある 複数の読み込み用データ(EXCEL)からひとつを選択し、データの取り込み作業をマクロ化したいと考えております。 例えば、読み込み用データ1のEXCELのRange("A2:A3")を メインプログラムのRange("C5:C6")に値を転記させるようなイメージです。 動作としましては (1)メインプログラムの「ファイル参照ボタン」より、読み込み用データをひとつ選び開く  ※ここまでは、msoFileDialogOpenで作成しました。 (2)メインプログラムの「取り込みボタン」にて、開いた読み込み用データの値をメインに転記  ※マクロの記録にて実施したため、読み込み用データ2や3・・・には適応できず困っております。 何か良いアドバイスがございましたら、何卒よろしくお願い申し上げます。

  • VBAを使用して、htmlファイルを編集したい

    お世話になっております。 エクセルのマクロを使用して以下の操作を行わせる場合、 どのようなVBAを作成すればよろしいのでしょうか。  Dドライブ直下のAディレクトリに保存されている,B.htmlをメモ帳で開き、  アクティブなエクセルファイルの A1~D10 のセルを B.html に張り付けて、  上書き保存する。 自分でも色々調べながらVBAを作ってみたのですが、 htmlファイルの上書き保存が上手くいきません・・・。

  • VBA ファイル作成時にマクロを含まない

    只今、excelのVBAを学習中です。早速ですが質問させていただきます。 excelファイルを作成し、入力されたファイル名で保存するプログラムを組んでいます。 その際、作成したファイルがマクロを含んでしまうのですがマクロをふくまないようにする事は可能でしょうか? VBAを始めたばかりなので初歩的な質問で大変恐縮です。よろしくお願い致します。

  • Excel VBA によるハイパーリンクセル挿入

    よろしくお願い致します。 Excelで写真データの管理出来るシートを作成しようとしています。 基本項目として、5項目+今回のハイパーリンクパスです。 1データ横一行に入力を行い、必要条件に応じシートから抽出し行末のハイパーリンクをクリックし写真を確認出来る様な事を想定しています。 ネットにて調べたのですが、ハイパーリンクを入力したいセルを選択後マクロボタンを押し「msoFileDialogFilePicker」を使用して該当ファイルを選択した物のハイパーリンクパスをセルに納める様に出来ればと思っています。当ファイルの使用は私以外の者が使用する為、上記VBAのFileDialogのインターフェースを使いたいと思っています。 何分当方VBA初心者の為、皆様のお力を頂きたくよろしくお願い致します。

このQ&Aのポイント
  • 10/26PCにおいてMicrosoft edgeのプラウザを開こうとしたら、いったん画面が白くなり、右側にesetマークとXが表示され、ページ読み込みが通常よりかなり遅く、操作も途中で止まってしまいます。
  • この現象はGoogle Chromeにおいても同じようにあらわれます。設定の『すべてのプラウザー保護』を解除(OFF)にすると問題なく早期にページ読み込みができるようになっておます。
  • ESETのユーザーで同じ現象が起こっているのか、また何か対策等ありましたらご回示いただければ幸いです。
回答を見る

専門家に質問してみよう