クロ(VBA)を使用してフォルダ内のファイルを検索し、開きたい
私は今、仕事で WINDOWS XP エクセル2003を使用しています。今度新しくデータの管理をすることになりました。エクセルだけで解決しようにも、マクロを使わなければいけないみたいでマクロに関しては初心者です。
今やりたいことなのですが
エクセルのファイルで 1000 Aさん 1001 Bさん 1002 Cさん
といった感じで個人のデータを同一フォルダで管理しています。
それを プログラムで1000と入力し表示するように入力すると、Aさんのファイルが開くというしくみのプログラムを作りたいと思っています。
画像で作ったフォームみたいに、ラベル、テキストボックス、コマンドボタンで外見までは作れたのですが、それ以降のコード入力がちんぷんかんぷんで分かりません。
もし、良いやりかたなどがあれば教えていただければと思います。また、マクロなんかを使わなくてももっと良いやり方があれば教えていただけると嬉しいです。(エクセルファイルでハイパーリンクで直で飛ぶように設定したりもしたんですが、OKがもらえませんでした。)
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"
のような具合で、実情に応じた コード を見つけてみてください。
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を開くボタンをクリックする動作を加えても何かメリットがあるのかと思いますが。
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
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が見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください 物件ごとのフォルダを作成してます そのフォルダ内にサブフォル 2 2023/07/02 17:58
- Excel(エクセル) エクセルでcsvファイルを開いてVBAを使いたい 7 2022/04/28 11:12
- Excel(エクセル) PDFファイルに日付を名前にして保存したい。 エクセル2019でワークシートに請求書のフォームを作り 2 2023/05/27 11:13
- Visual Basic(VBA) エクセルのマクロについて教えてください マクロを実行すると メッセージボックスが表示されて okをク 4 2023/07/05 19:32
- Excel(エクセル) CSVファイルでVBAを動かす方法 3 2023/04/04 10:22
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Excel(エクセル) フォルダ内のエクセルファイルを開かずにデータ採取する関数式 2 2022/12/22 22:15
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルのオートフィルターのしぼりをクリアーしたい 2 2022/12/24 08:36
- Visual Basic(VBA) Excelのマクロについて教えてください。 作業フォルダ内に2つのファイルがあります。 このファイル 2 2023/07/09 13:40
- Excel(エクセル) マクロVBAのフォルダ階層別で検索の方法 4 2022/04/03 23:23
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCEL VBA 指定したファイルが...
-
エクセルマクロで不特定なファ...
-
フォルダ内のexcelファイルを順...
-
エクセルのシートの数を数えた...
-
【Excel VBA】ファイル名が一...
-
エクセルのxls形式からxlsx形式...
-
VBAでワークブックの名前を変数...
-
ファイルを開かずにマクロを実行
-
accessフォルダを移動したらフ...
-
エクセルデータが突然破損します。
-
Accessのaccdbファイルを起動で...
-
EXCELが終了できません
-
ファイルの保存場所を変えたら...
-
フォルダ内のブック全部にパス...
-
新規 xlsmファイルにする方法...
-
マクロでVLOOKUP数式書込 任意...
-
LTSpiceにLMV358-Nのモデルを入...
-
vlookup関数の引数を変数で指定...
-
EXECLの変更を保存せずブック強...
-
vba初心者です。 質問です。 毎...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCEL VBA 指定したファイルが...
-
【マクロ】名前を保存する際に...
-
VBAでワークブックの名前を変数...
-
エクセルマクロで不特定なファ...
-
【マクロ】読取専用のファイル...
-
エクセルのxls形式からxlsx形式...
-
エクセルのシートの数を数えた...
-
フォルダ内のexcelファイルを順...
-
エクセル(マクロ)のファイル...
-
vlookup関数の引数を変数で指定...
-
エクセル 複数ファイルの一括...
-
ファイルを開かずにマクロを実行
-
フォルダ内のブック全部にパス...
-
【Excel VBA】ファイル名が一...
-
ファイルの保存場所を変えたら...
-
vba初心者です。 質問です。 毎...
-
Accessのaccdbファイルを起動で...
-
リンク切れチェックを行うマクロ
-
Excel VBA でファイルが開かれ...
-
エクセルマクロ 異なるファイ...
おすすめ情報