• 締切済み

VBAで、excelファイルのマクロを実行したら、特定のフォルダのファ

VBAで、excelファイルのマクロを実行したら、特定のフォルダのファイルの特定セルを確認し、その結果を反映する、というマクロを組みたいと思っています。 具体的には下記のマクロを組みたいと思っています。 ------------------------------------------------------ (1)マクロを組むファイル【worksheet】にてマクロを実行する (2)特定のフォルダのファイルのA1、A2、A3、A4の全てに”OK”という文字が入っているかを確認 ・C:\excel\1番\kakunin_1.xls にあるkakunin.xlsの、A1セルに”OK”という文字が入っていたら次はA2、A3、A4の順序で 確認する。 ・このとき、A1にOKと入っていて、A2には入っていなかった場合は、A2という文字を、【worksheet】のB1セルに結果を表示する ようにする。 ・特定のフォルダの構成は下記 C:\excel\1番\kakunin_1.xls |--\2番\kakunin_2.xls |--\3番\kakunin_3.xls ・上記の処理を、1番フォルダの【kakunin_1.xls】で実行し、【worksheet】のB1セルに結果を表示。 2番フォルダの【kakunin_2.xls】で実行し、【worksheet】のB2セルに結果を表示。 3番フォルダの【kakunin_3.xls】で実行し、【worksheet】のB3セルに結果を表示。 ------------------------------------------------------ VBAどころかプログラミング自体が初めてなので、例えば引数が何かも一々考えて1文ずつ読み込まなければいけない状態です。。 どなたかこの無知な自分に力を貸して頂けないでしょうか?

  • 0085
  • お礼率0% (0/5)

みんなの回答

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.2

Sub test() Workbooks.Open Filename:="C:\excel\1番\kakunin.xls" For i = 1 To 4 If Workbooks("kakunin.xls").Sheets("Sheet1").Range("A" & i).Value <> "OK" Then Range("B1").Value = "A" & i Exit For End If Next End Sub kakunin_1.xlsのSheet1のコードの例です エラー処理はご自身で考えてください。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

まずは、「マクロの記録」を実行して、なさりたいことをなぞる。 (始めは「A1」だけでも良い) 生成されるコードは冗長ではあるが、とりあえずは「VBAで再現できる」ことを確認しながらですね。

関連するQ&A

  • XCELのVBAマクロで次のことが実行できますか。

    XCELのVBAマクロで次のことが実行できますか。 (前提)WINDOWSで (1)MYDOCのフォルダAにExcelファイルA1.xlsからA9.xlsまで9個のファイルと、もう一つマクロBBの入ったExcelファイルB.xlsがあります。 (2)各Ai.xlsには、Aisheet(i=1カラ9)と名前のsheetが1つのみあります。 (処理したいこと) A1.xlsを開き、A1sheetを、B.xlsへcopyし、そのシートに対してマクロBBという処理を実行します。 続いて同様にA2.xlsを開き、A1sheetを、B.xlsへcopyし、そのシートに対してマクロBBという処理を実行します。 以下A9まで実行したい。 (質問)Bのマクロに新たにCCというマクロを作り、CCを実行することで、自動的に(処理したいこと)を実行してしまうようなものを作れますか。 また作るとしたらおおよそどんな風に作ればいいでしょうか。 ご回答よろしくお願いします。

  • 【Excel2003】マクロの実行

    お世話になります。 フォルダー内全てのエクセルファイルに、あるマクロを実行したいのですが可能でしょうか? 例としましては フォルダー「変更ファイル」 以下中にあるファイル ------------------------ ファイル「A.xls」 ファイル「B.xls」 ファイル「C.xls」 ファイル「マクロ.xls」←ソートを行うマクロ入り ------------------------ 「変更ファイル」フォルダー内の「マクロ.xls」を実行してA,B,Cファイル(フォルダー内全てのファイル)内データーを各ファイル毎ソートしたい。 この作業はマクロ.xlsのマクロをカスタマイズしてすることは可能でしょうか? 可能ならやり方を教えてください。 お願いいたします。

  • 同じフォルダ内にあるファイルを開くマクロ

    いつもお世話になります。 EXCEl2000で、フォルダ内に2コのエクセルファイル「A.xls」「B.xls」があり、「A.xls」でマクロを実行する際に、「B.xls」を開きたいのですが、ファイルのパスを設定すると、フォルダを別の場所に動かしたり、別のパソコンにコピーすると開けなくなります。 「同じフォルダの中にある「B.xls」を開く」という命令文の作成は可能でしょうか。

  • VBA_マクロ内でマクロ実行

    独学でVBAをやってる初心者です。 よろしくお願いします。 EXCEL2003を使ってます。 例) <A.xlsファイル> Sub File_A () Workbooks.Open Filename:="B" Call File_B Range("A1").Select Selection.Paste End Sub <B.xlsファイル> Sub File_B () Range("A2:T5").Select Selection.Copy End Sub A.xlsファイルを開きマクロFile_Aを実行させると B.xlsファイルのマクロFile_Bを実行することができません。 どうしたらうまく実行できますか? 教えてください。

  • excel VBA ファイル操作 マクロ について

    excel VBA ファイル操作 マクロ についてです。 ファイルAを基本ファイルとし、ファイルBのマクロB1をファイルB上で実行させる方法はあるのでしょうか? (ファイルBのマクロB1をファイルA上で実行する方法はわかるのですが。。。) ファイルBを開いてB1を実行すれば問題ないのですが、ファイルがB~Zなど多数ある場合に、作業効率化したいのです。 その際ファイルBは開いても開かなくてもOKですが、ファイルB上に表示される実行結果は保存したいです。 その結果、エラーが出なければ「正常終了」、エラーが出れば「異常終了」などを、ファイルAに記録するものを作りたいのです。 どなたかご教授お願いいたします。

  • 別フォルダにあるエクセルファイルのF列値を、他ファイルにコピーさせたい

    仕事で、ある機器の検証をしています。 検証テストをするときに使用するファイルが、「Aフォルダ」に140ファイルあります。(ファイル名「101_○○○.xls~240_○○○.xls」) ↓ 検証テストは、1ファイルずつ複数人で行います。 ↓ 検証テストが終了したファイルは、Aフォルダから「B・C・Dフォルダ」のいずれかに切り取り移動されます。 ↓ ということで、移動されてしまったファイルは、Aフォルダ内を検索しても、#REF!と表示されてしまいます。 出来ていること (1)ファイルの所在検索マクロの組立て (2)Aフォルダ内にすべての140ファイルがあった場合のF列コピーマクロの組立て ※A,B,C,Dフォルダは、同フォルダ内、同階層にあります。 ※すべてのフォルダは、会社のネットワークドライブ上にあります。 ※Aフォルダ内のファイルは、最終的に0になります。 ※各ファイルがA・B・C・Dフォルダのいずれに保存されているかは「ファイル所在検索マクロ」を実行しないと分かりません。 可能がどうか知りたいこと!! ファイルの所在検索マクロから確認できたファイルの所在(ハイパーリンク付)&ファイル名から、ファイルを特定して、F列のコピーができるか? 「まとめのエクセルファイル」は、5シート構成です。 Sheet1…進捗&担当者一覧 Sheet2…101~240チェック_詳細結果 Sheet3…301~440チェック_詳細結果 Sheet4…501~640チェック_詳細結果 Sheet5…ファイル所在検索を求めるためのシート 上記の「Sheet2…101~240チェック_詳細結果」にマクロを入れたい。現状、このようになっています。  A   B   C  D  E  F  G  H …列 ファイル名→→ 101 102 103 104 105 106 … 求めたい値  1  OK  OK NG OK  NG ↓ 2  NG OK NG OK OK   ↓    3  OK OK NG OK OK   ↓    4  OK OK NG NG OK (行) ※列…ファイル名 ※行…各ファイルのF8:F57に表示される値 ※C列には、101_○○○.xlsのF8:F57の値をコピーしたいです。  D列には、102_○○○.xlsのF8:F57の値をコピーしたいです。 質問がややこしいですが、ぜひお願いします!!

  • エクセル:マクロでの同名ファイル検索

    お世話になります。 あるフォルダの中に、たくさんフォルダが入っています。 子フォルダのファイルを全て親フォルダに移すのですが、同名ファイルがある可能性があります。 同名ファイルは枝番をつけるなどして処理するのですが、あらかじめ同名ファイルがあるかどうかを調べたいのです。 親フォルダの中にエクセルを入れておき、マクロの実行の結果、エクセルのシートに同名ファイルの情報を表示できればと思っています。 例)もし同名ファイルがあった場合、 まずセルA1にファイル名、B1に拡張子を表示する。123.xlsの場合 A1に123 B1に.xls そしてそのファイルが入っているフォルダ名をB2以降のB列に表示する。 3つのフォルダにA1のファイル名のデータがあれば、B2,B3,B4にそのフォルダ名が表示される。 もちろん同名ファイルが1組とは限りません。 2つ目以降はB列のフォルダ名が入った下の行のA列(上の例だとA5)にファイル名が入る。 この繰り返しです。 また、もし1つの同名ファイルがなかった場合は、A1に「同名ファイルなし」と表示させます。 ちなみに重複の場合の枝番の付け方に規則性がないため手作業で行いますが、枝番をつけて同名ファイルを無くした あとにまとめて親フォルダに全データを移すこともマクロで可能ならアドバイスください。 フォルダ構成は1つの親フォルダに対して複数の子フォルダで、孫フォルダはありません。 OSはWinXP、Excelは2002です。 よろしくお願いします。

  • Excel VBA ファイルが使用可能になれば 自動実行する仕組み

    Excel のマクロで、読み取り専用から編集状態に入ったときに 自動実行される仕組みは作れないものでしょうか? どんなシチュエーションかというと… ------------------------------------------------------------ 1.Aさんが \\Folder\File1.xls を開く 2.Bさんが \\Folder\File1.xls を開くと、読み取り専用になって開く 3.Aさんがファイルを閉じる 4.Bさんに「使用可能」通知が来る(編集しますか?と聞かれる) 5.Bさん【編集】するをクリックする この、5.Bさんが編集可能になった時点で、自動で実行するマクロを記述したいんです。 エクセルを開くときに自動実行するマクロありますよね。(Auto_Open() や、WorkBook_Open() など) そういう感じで 編集可能になったら走るマクロって可能でしょうか。 理由は、このファイルを開くと同時に上書き保存してるんですが (BuiltinDocumentProperties("Last author") ←の値をとるためです) 今度また別の人が開いたとき、今はBさんが編集しているのに 最終保存者=Aさんの名前で 使用者通知がされてしまうのです。 さらに補足しますと、マクロで制御しないと 「このファイルは Aさんが使ってます。読み取り専用で開く?」が 表示された後 「キャンセル」を選択すると 異常終了してしまうので "Last author"を取得する方法しかないんです。(他にあったりして?) 理想は、  4.Bさんに「使用可能」通知が来る(編集しますか?と聞かれる) の表示をさせずに マクロの制御で 「使用可能になりました。いったん閉じてから再度開き直してください」 という仕組みに出来たら最高です。 長くなりましたがよろしくお願いいたします。

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

    マクロで下記内容の処理を行いたいと思っております。 どのようなコードにすればよいかご教授よろしくお願い致します。 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を開く 以下、同じ処理を繰り返す。

  • セルをダブルクリックすると、不特定のフォルダ内にある、セルの値を含む名前のファイルが開くマクロを教えて下さい。

    マクロ初心者です。 いろいろ検索してみましたが、見つけられなかったので教えて下さい。 セルをダブルクリックすると、そのセルの値を含むファイルが開くようにしたいのですが、ファイル名はセルの値と完全に一致してはいません。但し、必ずセルの値でファイル名は始まります。 例: セルの値="A"    開きたいファイル名は=  "AA 12345987.xls"とか"BCBB 657.xls 開きたいファイルは、C:\ww\001、C:\ww\022、C:\ww\303、、、いずれかのフォルダ内にあります。 C:\wwまでは同じです。 Private Sub Worksheet_BeforeDoubleClick _ (ByVal Target As Range, Cancel As Boolean) を使って、特定フォルダ内にある、セルの値と完全に一致する名前のファイルを開く方法は、検索をくりかえして見つけることができました。 ファイルが存在するパスを特定できず、 ファイル名が、セルの値と完全には一致していないファイルを自動的に開く方法がありましたら、教えて下さい。お願いします。

専門家に質問してみよう