• ベストアンサー

VBAでB列のファイルパスにリンクを貼りたい

いつもお世話になっております。 特定のフォルダ内にエクセルファイルが毎月増えていくのですが、このフォルダに入っているエクセルファイルのフルパスの一覧を別のエクセルシートのB列に毎月コピペしています。 月10-20のエクセルファイルがリストに追加されていきます。 この増分のパス(B列)にリンクを貼りたいのです。 B列には既に400件以上のファイルパスが入っているので、毎回上からB列の全部のセルにリンクを貼り直すのではなく、増分(B列の最下行+1行目)以下のセルにリンクを張るBVAを教えて頂きたいのです。 当方教えて頂いたコードとマクロの記録の組み合わせがどうにか出来るレベルなので宜しくお願いします。 但し、B列の140行目迄には空白を含むパス以外の文字が入っています。 パスは141行目以降に空白なく入っていきます。

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

  • ベストアンサー
  • SI299792
  • ベストアンサー率48% (713/1473)
回答No.2

これは、VBA を使わない方がいいと思います。 画像の様に、B141以下にファイル名がフルパスで入っているとします。 C141 =HYPERLINK(B141,IF(B141="","","Link")) 下へコピペ。 ハイパーリンクが設定されるのは、C列になりますが、機能します。 下迄コピペしておけば、B列が増えても対応できます。 VBA より簡単ですが、これではだめですか❓

akira0723
質問者

お礼

試行結果を報告します。 結局途中の列に細工は出来ない状況で(ご回答者様には意味が分らないと思いますが列の挿入や削除はVBAの位置関係を修正する必要があるので当方にはハードル高し)。 で、最終列と思ったのですが、あまりに離れてしまうので、苦肉の策で元々ホボ空白のA列に関数を入れて動くことを確認しました。 この関数は当方には有益な関数で色々なシートでも使用させて頂けると思います。 ありがとうございました。

akira0723
質問者

補足

こんな方法が有ったのですね! このbook、シートはかなり大きくいろんなvbaが仕込んであるので、一応実シートで確認後結果報告しますのでしばらくお待ち下さい。 確かにこの方が良いと思います。

その他の回答 (1)

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.1

この分ではファイルが月々増えて、ファイル名の管理も大変ですね アクセスを検討されては アクセスなら数年間一つのファイルで運用出来ます。 ファイル内には、情報の保存用のテーブルを定義します。 1.マスターテーブル  顧客マスターテーブル、商品マスターテーブル、  社員マスターテーブル等 2.納品、見積等、日々発生するトランザクションテーブル  トランザクションテーブルには、見積日、納品日等、  日付の項目を含めます。  ご質問の情報もこのトランザクションに相当します。 3.ご質問の情報はどこでコンピュータ処理しますか  この処理がアクセスで処理するのがよいのですが、  エクセルファイルをインポート(取込)も可能です。 4.アクセスの項目には、日付/時刻型、テキスト(半角、全角)  数値型と設定しますので、入力の精度、効率が上がります。  エクセルの入力規則は表示行数は8行ですが、  アクセスは16行が規定値で変更可能です。 ご不明がご遠慮なく補足願います

akira0723
質問者

お礼

ご丁寧なご回答ありがとうございます。 アクセスは大昔に一時期使用していたのですがその後、仕事内容が変わってしまてアクセスのアの字も思い浮かばなかった状況で今から勉強するには年老いてしまいました。 幸い、No1のご回答で対応できる目処が立ちましたので今回は関数で対応することにします。

関連するQ&A

  • ファイルパスを複数書いて、そのファイルパス全てからファイルを順に取り込

    ファイルパスを複数書いて、そのファイルパス全てからファイルを順に取り込みたい。 A1,B1.C1・・・と、セルにファイルの絶対パスを書いて、A1から順に書いてあるファイルパスだけそのパスからファイルを取り込むマクロを作りたいです。 ファイルを指定してファイルを取り込むマクロを作ったのですが、毎回ファイルを指定するのが面倒です。 なので、シートにあらかじめファイルパスを書いておいて、そのファイルパスからファイルを取り込むようにしたいです。 取り込むファイルは複数で、その時によって違います。(といっても、多くても5つくらいですが・・・) どなたか作り方を教えていただけませんでしょうか。 質問内容が分かりづらかったらすみません。 何かあれば補足いたしますのでよろしくお願いします。

  • 文字列中からファイルパスのみを取得する方法

    テキストファイルからデータを1行ずつ読み取り、 その中にファイルパスがあれば他のファイルに書き出すというロジックを考えています。 文字列は 例えば  include ROOT_PATH."/class/test.txt"; という文字列で、この中から  /class/test.txt という文字列だけを取得したいのです。 現在、拡張子から1文字ずつ前の文字列をチェックしていって、「”」が見つかったらその間の文字列を ファイルパスとしようとしています。 これを1発で行ってくれるような関数等ははないでしょうか?   良いお知恵がありましたらご教授お願いします。

  • 文字列からファイルパスの取得

    C++を勉強中です。 メールの文章のような文字列からファイルパスやフォルダパス部分のみを抽出したいと考えています。 パスはファイルサーバやローカルなものです。 どの様にすれば文字列からパス部分を抜き出せますでしょうか。 よろしくお願いします。

  • E列のセルに数値が入れば(空白でなければ)B列の同じ行のセルに色がつく

    E列のセルに数値が入れば(空白でなければ)B列の同じ行のセルに色がつくようにしたい。 エクセル2007です。 条件付き書式で、数値を入れたセル自体に色をつけることはできたのですが他の列を参照することができませんでした。 どうやって設定すればいいでしょうか。

  • エクセルのリンク先のフルパスをコピペしたい

    先日ここでファイルのフルパスをVBAで探しに行くコードを教えてもらって使い始めたのですが、すでに張ってあるハイパリンクのフルパスをコピーして隣のセルにVBAで貼り付けたく。 一応マクロの記録で試してみて下記の3行でうまく行くのですがこれをループにできません。 宜しくお願いします。 リンクの張ってあるセルはE列でフルパスを貼り付けたいセルは隣のF列です。 尚、対象セルは現在1500個程度ですが逐次増えるので、もし範囲指定しないと非常に時間がかかるようなら10000個(行)でお願いします。 原則空白行は無いのですが,リンクが切れていたり、リンク先のファイルが無いケースは存在します。 Sub リンクのコピペ() Range("E8").Select ActiveSheet.PasteSpecial Format:="Unicode テキスト", Link:=False, _ DisplayAsIcon:=False, NoHTMLFormatting:=True End Sub

  • Excelでのリンク付けについて

    Excelで「書類」というフォルダにA.xlsとデータフォルダがあります。データフォルダの中にB.xlsというファイルがあります。 そこで、マクロでB.xlsファイルのセルA1にA.xlsファイルのセルB2のデータをリンクするとき絶対パスではやりたくないのですが、どうすればいいかわからないので教えてください。 よろしくおねがいします。

  • エクセル2002で、ある列が空白なら、その空白のある行は削除する方法

    エクセル2002で、 ある列に空白のセルがあった場合、その行を削除する方法を教えてください。 例えば、B列を選択して、 編集、ジャンプ、セル選択、空白セル、OKとたどって、 セルB11、セルB22、セルB33が空白セルなら、 11,22,33の行を削除する方法を教えてください。

  • VBAでセル内の文字列を一行にする方法

    ExcelのVBAで、セル内に折り返しで3行に書かれている文字列を、各文字列間に空白を1つ入れて、1行につなげるにはどうしたらいいですか

  • シート間リンクの一括設定

    エクセルで、下記のようなシート(1)「B列」からシート(2)へのリンク設定を 一括でおこないたいのですが、何かいい方法はありませんでしょうか? -----------------エクセル同一ファイル--------------------- 【シート(1)】 行番  A列        B列  1  あいうえお  2  かきくけこ    注釈(1)  3  さしすせそ  4  たちつてと    注釈(2)  5  なにぬねの    注釈(3) (以下続く 数千行) 【シート(2)】 行番   A列       B列  1   注釈(1)     注釈内容  2   注釈(2)     注釈内容  3   注釈(3)     注釈内容 (以下続く) --------------------------------------------------------------- ※【シート(1)】の“B2”セルをクリックすると、【シート(2)】の“B1”セルへリンク。 同様に【シート(1)】“B4”セルをクリックすると、【シート(2)】の“B2”セルへリンク・・・・と、 注釈内容を別シートへリンクさせたいのですが。 現状では、【シート(1)】のB列「空白以外のセル」のみを表示させて、各セルごとに ハイパーリンク先のシートとセルを一つずつ指定しています。 【シート(1)】B列の注釈あり/なしはランダムで、連番付けし、 【シート(2)】へは、それぞれ連番順に記載されます。 このリンクをなんらか一括で設定できればと思うのですが、ご指摘頂ければ幸いです。

  • リンク元の日付が空白の時リンク先セルも空白にしたい

    エクセル2007です。 A1に、2013/12/1と入れて表示形式 m"月"d"日" で12月1日と表示されています。 B1に、=A1とリンクしてこれが40行ほどコピーされています。 B列も同じく表示形式を m"月"d"日" にすると、 A列に空白がある時対応するB列セルには「1月0日」と表示されてしまいます。 A列の日付が入らない場合はB列も空白にしたいのですがいい表示形式はありますか? 他の日付以外のセルは形式を #,##0;[赤] -#,##0; として空白の列=リンク先も空白列を実現できています。 B列の日付のセルをこの形式にするとA列リンク元が空白の時はいいのですが、 日付を入れるとシリアルNo.らしき数字が表示されて、日付ではなくなってしまいます。

専門家に質問してみよう