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

このQ&Aのポイント
  • VBAを使用して、エクセルのマクロ台帳と事前に作成したフォルダーをリンクさせる方法を教えてください。
  • フォルダーとテキストをリンクするためのVBAの例を教えてください。
  • VBA初心者でも理解できる保存先を修正する方法を教えてください。
回答を見る
  • ベストアンサー

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

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

この投稿のマルチメディアは削除されているためご覧いただけません。
noname#208471
noname#208471

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

  • ベストアンサー
  • MSZ006
  • ベストアンサー率38% (390/1011)
回答No.3

#1です。補足を見ました。 コマンドボタンの作成手順にもよるのですが、ボタンを右クリック「マクロの登録」でボタンとの関連付けを行なうのでしたら、 1行目の最初の「Private」を削除してください。

noname#208471
質問者

お礼

出来ました^^ 有難う御座います。 とても助かりました

その他の回答 (2)

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

まぁ,マクロを使いたいのでしたら勿論構いませんが, =IF(A5="","",HYPERLINK("D:\TEST\"&A5&"\"&A5&".txt","表示")) 以下コピー とでもしておけば,A列の記載内容に応じたハイパーリンクを関数で生成できます。

noname#208471
質問者

補足

関数で出来ると言う事で。 こちらは、具体的にはどの様に使用するのでしょうか? 当方の使い方としましては、既存にあるフォルダーを指定されてた場所に保存し、 保存されているフォルダー名をエクセルの台帳に入力し、 リンクさせたいのです。

  • MSZ006
  • ベストアンサー率38% (390/1011)
回答No.1

こんな感じでどうでしょうか。 --------------- Private Sub CommandButton1_Click() Dim path As String Dim fullpath As String Dim name As String path ="D:\TEST" 'フォルダのあるパス name = ActiveCell.Value 'フォルダ名 ancr = ActiveCell.Address 'セル番地 fullpath = path & "\" & name 'フォルダまでのフルパス If Dir(fullpath, vbDirectory) = "" Then 'フォルダが存在しない z = MsgBox("リンクするフォルダがありません。もしくは誤ったセルが選択されています。", vbOKOnly) Exit Sub End If If name = "" Then 'フォルダ名が空白 z = MsgBox("フォルダ名が入力されていません。もしくは誤ったセルが選択されています。", vbOKOnly) Exit Sub End If Hyperlinks.Add anchor:=Range(ancr), Address:=fullpath End Sub

noname#208471
質問者

補足

アドバイス有難う御座います。 教えて頂いたコードをツール⇒マクロ⇒Visual Basic EditorのSheet1に貼り付け。 次にボタンを右クリックにてマクロの登録しようとしたのですが、 教えて頂いたマクロとして認識していない様で、 ボタン登録画面にマクロが表示されていなく登録ができませんでした。 申し訳ありませんが、何が足りないのか教えて頂けますでしょうか?

関連するQ&A

  • ExcelのVBAで名前を付けて保存

    ExcelのVBAで名前を付けて保存としたいのですが、ユウザーフォーム上のテキストボックスに保存する名前を入力したらコマンドボタンでブックが終了するマクロを教えてほしいのですが。 よろしく御教授願います。

  • excelからのテキスト出力方法

    はじめまして。 VBAでセルに入力された文字と固定した文字をテキストとして出力し 自動的に保存させたいのですがどうすれば良いでしょうか? イメージとしては・・・ セル・・・入力した文字 A1・・・○○○ A2・・・■■■  ↓ マクロ実行  ↓ テキスト出力・保存(D:\test.txt) ---テキスト内容--- set ○○○ set ■■■

  • エクセル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に追加機能を付けたいのですが、 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で今日の日付のフォルダを作る。

    VBA初心者です。 仕事で急遽EXCEL2000のVBAを使わなくてはならなくなり、本を買って急いで勉強しましたがうまくいきません。 もう日数もなく困っています、どなたかお教え下さい。 VBAでやりたいこと 1.まずTEST.xls上でボタンをつくり、それをクリックすると、TEST.xlsと同じディレクトリに20061119という(ボタンをクリックした日付)フォルダが作成される。 2.そのフォルダの中に、test1.sqlと、test2.sqlいうテキストファイルが作成される。 3.sqlテキストファイルの中身には、どちらも 123(abc/def) 456(ghi/jkl) という内容が書き込まれる。 今のところ散々頑張って、日付名ではないフォルダの中にカラのsqlテキストデータを作るまでしか出来ず困っています(-_-;) どうかよろしくお願いします。

  • エクセルVBA テキストに出力、名前を付けて保存

    エクセルVBA テキストに出力、名前を付けて保存    A  B   C   D 1  aa  bb  cc  =A1&B1&C1 2  dd  ee  ff  =A2&B2&C2 3  gg  hh  ii  =A3&B3&C3 上記エクセルのD列の内容(セルA1~C3が連続したもの)を1行毎にテキストに出力し、 B列の内容をファイル名にしてテキストファイルを多量に自動生成したいのです。 上記エクセルのように3行なら下記の3つのファイルが生成されるといったVBAがほしいのです。 ファイル名がbb.txtで、テキストの内容はaabbcc。 ファイル名がee.txtで、テキストの内容はddeeff。 ファイル名がhh.txtで、テキストの内容はgghhii。 実際は数千行あるので、数千ファイルを一気に生成させたいのです。 どうぞよろしくお願いいたします。

  • フォルダ名だけを取得するVBA

    VBAを使ったエクセルテンプレート適用ツールを作成しているのですが そのVBAのことで教えてください。 現在自作のフォーム上にあるテキストボックスにフルパスが入っているとします(添付図参照)。 *この前提は必須と考えてください。 次に作成ボタンをクリックすると Step1 新しいブックが開かれ行幅や書式などが自動で調整されます。 Step2 ブックの保存ダイアログが自動で開きます。     ただし、保存ダイアログが開いた時点で自作フォーム中の     テキストボックスで指定したフルパスに移動しており、     且つ移動先のフォルダ名(<-注意!!フルパス名ではありません!!)と     同じ文字列をファイル名入力欄に自動で入力されるようにします。    ex) D:\MyProject\Project01\TaskA\にブックを作成し保存する場合、      保存ダイアログのファイル名欄にTaskAとだけ書く。 マクロ自体はここでストップし、これ以降はユーザーがそのファイルメモで 保存してよいかどうかを判断し、問題なければ手動でダイアログ上の「保存」ボタンを押します。 問題はStep2で、保存先のフォルダ名と同じ文字列を保存ダイアログのファイル名に記入するには どのようなコードを書いたらよいでしょうか。 私自身としては下記の二案を考えているのですがそれぞれについて疑問があるので教えてください。 案1 作成ボタンを押した時点でテキストボックスに書かれているフルパスの文字列から   末尾にあるフォルダ名だけを取得して変数に代入し、これを保存ダイアログの   ファイル名欄に反映させる。   疑問:テキストボックスのValue値に書かれているフルパスを示す文字列から      末尾のフォルダ名だけを取得するためのコードは何と書けばよいのでしょうか? 案2 ブックの保存ダイアログが開いて保存先のパスに移動してから今保存ダイアログで    開いているフォルダ名を取得する。    疑問:今アクティブになっているブックが保存されているフォルダ名だけを取得する    方法なら確かあったような気がしています。    しかし今保存ダイアログで表示されているフォルダ名を取得するコードは何と    書けばよいのでしょうか?    そもそもそういったコードや操作自体VBAにあるのでしょうか?

  • エクセルVBA セルに表示されたテキストと同じ名前のファイルを開きたい

    EXCEL2003を使っています。コマンドボタンをクリックすると、VLOOKUPなどで検索し、あるセルに表示させた文字と同じ名前のファイルを開くVBAを教えてください。ファイルは同フォルダにあります。VBA初心者です。よろしくお願いします。

  • サーバー保存先変更に伴うショートカットのリンク先変

    組織替えによりサーバー保存先が変わりました。 これによりフォルダーに保存されているショートカットのリンク先を変更する必要となりました。 ネット検索してもこれと言う例題が見つからなかったため、ご教示いただければと思います。 変更前共有サーバー: \\AA\BB\CC\DD\EE\・・・・ 変更後共有サーバー: \\AA\FF1\FF2\FF3\DD\EE\・・・・ 変更したいことは、変更前の\\AA¥BB\CCのところを\\AA¥FF1\FF2\FF3に変更する。 \DD以降は変更なし。 1、 フォルダー内に作成したExcelファイルを保存しマクロを実行して変更する。 (デスクトップ内・サーバー内に使用) 2、 フォルダー内のlnkファイルのみを対象(数個あるとする) 3、 シートのセルD3に変更前のリンク先 \\AA\BB\CCを入力 シートのセルD5に変更する \\AA\FF1\FF2\FF3を入力する。 (汎用性を持たせるために、セルD3・D5を変更すると他部署にも使用可能) 4、 ショートカットのリンク先先頭が,” \\AA\BB\CC“であれば\\AA\FF1\FF2\FF3に書き換える (¥DD以降は変わらない) 5、 現在のフォルダー内だけか、下層フォルダーも変更するか Yes/Noで選択できるようにする。 6、 ショートカットのファイル名は変更しない。 以上ですが宜しくお願いします。 ちなみに自分が作るマクロでは変数を日本語で宣言しています。 Fn ⇒ ファイル名 何か問題があるでしょうか?

  • VBAでシェープ

    例えばA1セルに”えくせる”と入力されていたとします。 ここでマクロを実行すると、A1セルにぴったり合うぐらいの大きさでテキストボックスが作成され、A1セルの”えくせる”という文字がテキストボックスに入力されるというマクロのコードが知りたいのですが、何回思考してもうまくいきません。とある方のホームページでダウンロードしたワークシートに、同じようなマクロがあったので技術的には可能と思うのですが。 ちょっと難しいと思うのですが、どなたかVBAのプロの方がおられたら教えて頂きたいです。

専門家に質問してみよう