• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAによるファイルの起動について)

VBAによるファイル起動方法とファイル数増加時の対応について

WWolfの回答

  • WWolf
  • ベストアンサー率26% (51/192)
回答No.3

VBAで作るのも悪くはないのですが、ハイパーリンクを使ったほうがシンプルであるのと後々に応用が利きやすいと思いますよ。 フィルターをどうしてもかけたいのであれば例えばC列にハイパーリンクを貼りD列に関数を使ってにては? 質問自身の回答ではないのですが、#1#2さん同様そのような管理という意味は理解はするのですが、メンテや管理というなら方法論としては意図が理解しにくいです。 多分質問者さんのしたいことはVBAでなくとも可能であると思いますよ。

関連するQ&A

  • VBAによるファイルの起動について

    Aというファイルに、B及びC及びDというファイル名及びパスを記述し、Aのマクロにてそれらを参照し、B・C・Dのファイルを起動するというマクロを 組んでいるのですが、B及びCは問題なく起動するのですが、Dのファイルは起動しません。 ファイルパスが記述されているのは、AというファイルのA列に記載しているのですが、A列が空白になるまで処理を行うようにマクロを作成しております。 ちなみにDのファイルが起動しないので、(実際にはファイルパスは記載されております)Msgboxを使用してDのファイルが書かれている場所は何が表示されるか確認してみたところ、"84201"というよくわからない値が表示されてしまいます。 そのために、Dのファイルが起動できないのですが どうしたらこの事象を解消できるのでしょうか? ちなみに空白になるまで行うという命令は DoWhile cells(i,1)<>"" ・・・・・ loop と記載しております。

  • 結合した文字列をファイル名に使えない

    Excel上に入力されているパス名とファイル名のデータを組み合わせて、 様々なファイルを開いたりコピーしたりするVBAのコードを作ろうとしています。 仮にシート上のA1セルに、C:\Documents and Settings\デスクトップ というパス名 A2セルに URIAGE.xls というファイル名が入力されていたとして、 A1の文字列データとB1の文字列データを結合する場合、 Sub FileSousa()  Dim a As String  Dim b As String  Dim c As String  a = Cells(1, "A").Value  b = Cells(2, "A").Value  c = Chr(34) & a & "\" & b & Chr(34)  Range("A3") = c としてみると、確かにA3セルには、"C:\Documents and Settings\デスクトップ\URIAGE.xls" と出力され、文字列が結合されたことがわかるのですが、その変数cのデータを使って  Workbooks.Open Filename:=c として、そのファイルを開こうとすると、ファイル名が見つからないとしてエラーになります。 ファイルはデスクトップ上の確かにその名前で存在しており、直接 Workbooks.Open Filename:="C:\Documents and Settings\デスクトップ\URIAGE.xls" とすると開きます。 " を Chr(34)によって入力したのがいけないのでしょうか、 Workbooks.Open Filename:=××× には、変数を置いてはいけないのでしょうか。 そもそも文字列の結合は、"あ" & "い" → "あい" となるのが基本だと思うのですが、 a="あ"、b="い"、c=a&b → c="あい"として結合した変数cについては、ファイル操作上のファイル名の設定項目として使えないのでしょうか。

  • Excel VBA でサブフォルダ含むファイル名取得

    勉強不足で申し訳ないですが、以下の処理をExcel VBAでやるにはどうしたらいいでしょうか? 仮に「C:\aaa」をルートフォルダとします。そのルートフォルダ下には「2008年」「2009年」など年の名前を付けたフォルダだけがあり、他に余計なファイル等はありません。そして、その「2008年」など年の名前のフォルダに、雑多なファイルが入っています。大雑把に図にすると、次のような感じです。 C:\aaa ├2008年 │ ├a1.pdf │ └a2.pdf │ └2009年   ├b5.pdf   └b6.pdf そして、添付の図のように、A列には「2008年」などサブフォルダ名が、B列には「a1」などファイル名が出力されるようにしたいのです。なお、 (1)B列のファイル名の拡張子は、消えれば最高ですが、別に消えなくてもいいです。 (2)B列のファイル名をクリックするとファイルが開けるハイパーリンクがあると、嬉しいです。別になくてもいいです。

  • VBAとロングファイル名

    EXCELのVBAで、「C:\My Documents」のようなロングファイル名を 「C:\Mydocu~1」のような昔のファイル形式にする方法を教えてください。 例えば ThisWorkbook.Pathで得たパス名がロングファイルだった場合です。 目的は、ある古い別アプリをShellで起動させたいのですが、それの 引数に昔のファイル形式で色々なパスを渡さないといけないのです。 (そのアプリがロングファイル名に対応していない) ヘルプとか見たんですけど分からないので教えてください。 お願いします。

  • エクセル(マクロ) 特定セルのファイル間コピペ

    マクロで下記内容の処理を行いたいと思っております。 どのようなコードにすればよいかご教授よろしくお願い致します。 1.A.xlsを開く 2.B.xlsを開く 3.B.xlsの特定セルの値をコピーする。(特定セルを仮にB4、C7、D9とする) 4.A.xlsのC列にあるファイル名リストから「B.xls」というファイル名の入ったセルを検索する。 5.仮に5行目に「B.xls」というファイル名があれば、同じ行にある特定列 (行は固定で、例えばE5、F5、G5とする)に3.でコピーしたB4、C7、D9の値を張り付ける。 ※B4はE列、C7はF列、D9はG列に対応するものとする 6.B.xlsを閉じる 7.C.xlsを開く 8.C.xlsの特定セルの値をコピーする。(特定セルはB.xlsと同じB4、C7、D9) 9.A.xlsのC列にあるファイル名リストから「C.xls」というファイル名の入ったセルを検索する。 10.仮に7行目に「C.xls」というファイル名があれば、同じ行にある特定列 (行は固定で、例えばE7、F7、G7とする)に8.でコピーしたB4、C7、D9の値を張り付ける。 ※B4はE列、C7はF列、D9はG列に対応するものとする 11.C.xlsを閉じる 12.D.xlsを開く 以下、同じ処理を繰り返す。

  • VBAのコードについての質問

    いつもお世話になっております。 以下の操作(添付ファイル)に対するVBAのコードを教えてください。 (1)シート1(添付ファイル左):B列に新聞名、C列に対象記事数 (2)マクロを実行することにより、シート2(添付ファイル左)の表が作成される。 質問したい事は、A新聞の記事数が3、B新聞の記事数が2なので、シート2にA新聞の行が3行作成され、その下に、B新聞の行が2行・・・・記事数が0の場合は行は作成されない。 のような事をやいりたいのですが、コードが分かりません。 どなたかよろしくご教授ください。

  • エクセル2000で質問です。

    あるファイルがあります。 仮にファイル名を「一覧」とします。 A列に商品コード、B列に商品名、C列に定価、D列に仕入れ価格、と入っていて行数で 約1000行(品目数)入っています。 基本的に内容の変更や更新は年に一度程度しかありません。 新たに別のファイルを作成する際に(仮にファイル名を「納品書」とします) B列に商品コードを入力すると「一覧」から抜粋して自動的にC列に商品名、D列に 定価を表示させたいのですが、そういう事は可能でしょうか?

  • EXCEL VBA 社員毎にファイルを分割したい

    お世話になります。 実績.xlsというブックがあります。 これは社内の各支店の売上実績を個人別に記述したファイルです。 内容は下記のような感じです。 A列=支店名 B列=担当者名 C列=売上金額 このデータが記述しているシートの端にボタンをつけてクリックすると、B列の担当者別にファイルを分割して、データも担当者毎に分けて(A-C列をそのままコピーでいいです)デスクトップにファイルを保存する、ということは出来るのでしょうか? ファイル名もA列+B列の支店名+担当者の名称で保存できれば最高です! どなたかご教授いただけませんでしょうか? 添付図の例ですと6つのファイルが保存されることになります。 環境 Windows7 Excel2013

  • エクセルVBAでテキストファイルにして保存する方法

    エクセル「Sheet2」のA列、C列、D列にそれぞれ100個の文字列が入力されています。 B列は空欄になっています。 (作業内容) C列とD列のデータを結合して、B列に入力 A1~B100のデータを1つのテキストファイルとして保存する。 ファイル名はその都度指定する。 よろしくお願い申し上げます。

  • 【VBA】同一ディレクトリ内のファイル名取得とA列

    【VBA】同一ディレクトリ内のファイル名取得とA列、B列のコピペ A.xlsに同一ディレクトリ内にあるyyyymmdd.csvファイルを順に読み取り A.xlsの A1に対象ファイル名 B列に対象ファイル内のA列をコピペ C列に対象ファイル内のB列をコピペ 次のファイルはD1 その次はG1 ・ ・ といった処理をさせたいです。 どのように記述すればよいでしょうか。 よろしくお願いしますm(._.)m