• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel シートの取り込みとデータ検出方法)

Excel シートの取り込みとデータ検出方法

tom04の回答

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

No.1です。 ブックを開かずに!というのは↓のサイトにあるようにExcel4.0なるものを使用すれば可能のようです。 http://officetanaka.net/excel/vba/tips/tips28.htm ただ結構面倒な感じがしますので、 画面更新をせず「コピー元ファイル」を開き → そのファイルの各Sheetをコピー&ペースト → 条件セルに色付け → 「コピー元ファイル」を閉じる といった操作ではどうでしょうか? そして >fN = Cells(1, 1)をSet wB = Workbooks(fN)にて変数で代入すると・・・ に関しては Application.GetOpenFilenameでA1セルに保存場所のパスとファイル名が取得できている!というコトですので、 変数に格納せずそのままA1セルの「文字列」(保存場所のパス&ファイル名)を使用してはどうでしょうか? Sub Sample2() Dim wS As Worksheet, wB As Workbook Dim k As Long, c As Range, myRng As Range Application.ScreenUpdating = False '▼ GetOpenFilename でA1セルにコピー元のパスとファイル名が取得できているという前提 Workbooks.Open (Range("A1")) Set wB = ActiveWorkbook ThisWorkbook.Activate For k = 1 To wB.Worksheets.Count Worksheets.Add after:=ActiveWorkbook.Worksheets(Worksheets.Count) Set wS = ActiveSheet wS.Name = wB.Worksheets(k).Name & "(" & k & ")" '←念のため★ wB.Worksheets(k).Cells.Copy wS.Range("A1") Set myRng = wS.Cells.Find(what:="東京都", LookIn:=xlValues, lookat:=xlPart) If Not myRng Is Nothing Then For Each c In wS.UsedRange If InStr(c, "東京都") > 0 Then Set myRng = Union(myRng, c) End If Next c myRng.Interior.ColorIndex = 3 End If Next k wB.Close Application.ScreenUpdating = True End Sub ※ とりあえずこちらで A1セルにApplication.GetOpenFilenameで 選択したファイルの「パスとファイル名」を取得しやってみたところ 一応動作確認はできています。m(_ _)m

MellowTheF
質問者

お礼

わざわざ検証までしていただき、ありがとうございました。 心より厚く御礼申し上げます。 こちらでも頂戴いたしましたマクロが希望通りに動くことが確認出来ました。 これでかなり業務を圧縮出来そうです。本当にありがとうございました。 また、マクロの組み方、考え方も大変勉強になりましたので、今後必要なときに是非参考にさせて頂きます。 重ねて御礼申し上げます。大変助かりました。。 よろしくお願いいたします。

関連するQ&A

  • EXCEL VBA 他ブックのシートのコピー方法

    今開いているブックに、開いていない他のブックのシートをコピーする記述方法を教えて頂けませんでしょうか。(Office365を利用)  開いているブック :A.xlsx  シート:a  開いていないブック:B.xlsx  シート:b bをaの後ろにコピーする方法を教えてください。aにボタンを置いて、それをクリックしたらという方法でも構いません。 よろしくお願いします。

  • エクセル、ブック間でのデータ読込

    教えてください。 Excel2010を使っています。  動作:閉じているブックからデータを読み出し、開いているブックに貼付けることです。  詳細:閉じているブック’2014_9月.xlsx’、シート’AAA’、セル’C200~D215・I200~I215のデータを      開いているブック’2014集計.xlsx、シート’集計’、セル’B20~C35・D20~D35に貼付けをた      いのですが。      応用1.        閉じているブック’2014_9月.xlsx’、シート’AAA’、セル’C200~D215・I200~I215         ↓        開いているブック’2014集計.xlsx、シート’集計’、セル’B20~C35・D20~D35        閉じているブック’2014_10月.xlsx’、シート’AAA’、セル’C200~D215・I200~I215         ↓        開いているブック’2014集計.xlsx、シート’集計’、セル’B40~C55・D40~D55        閉じているブック’2014_11月.xlsx’、シート’AAA’、セル’C200~D215・I200~I215         ↓        開いているブック’2014集計.xlsx、シート’集計’、セル’B60~C75・D60~D75        ・        ・        ・        閉じているブック’2015_9月.xlsx’、シート’AAA’、セル’C200~D215・I200~I215         ↓        開いているブック’2015集計.xlsx、、シート’集計’、セル’B20~C35・D20~D35        それぞれのブックは事前に作成します。’2014_9月.xlsx’、’2014_10月.xlsx’、’2014_11        月.xlsx’、’2015_9月.xlsx’、’2014集計.xlsx、’2015集計.xlsx      応用2.        現状        閉じているブック’2014_9月.xlsx’、シート’AAA’、セル’C200~D215・I200~I215         ↓        開いているブック’2014集計.xlsx、シート’集計’、セル’B20~C35・D20~D35        開いているブック’2014集計.xlsx、シート’集計’セルB19’年’、セルC19’月’を変更する        ことにより        変更        閉じているブック’2014_10月.xlsx’、シート’AAA’、セル’C200~D215・I200~I215         ↓        開いているブック’2014集計.xlsx、シート’集計’、セル’B20~C35・D20~D35        と言うことは可能でしょうか。 エクセルのマクロは初心者で苦労をしています、ご教授頂ければ幸いです。 よろしくお願いいたします。        

  • エクセルのコピー方法

    エクセルのコピーの方法ですが、例えばフィアルがAとBがあり、ファイルA/シート(1)/A1のセル数値をシート(2)のA1でリンクさせている場合、シート(2)のA1セルをコピーしてBファイルにコピーした場合、 =[A.xlsx]Sheet1!A1となります。 =[A.xlsx]がリンクされないで→=Sheet1!A1だけで貼付けるいい方法をご存じの方教えて下さい。後から手で消していくのが面倒です。

  • エクセルVBA ファイル名操作

    エクセルマクロのコードにおきまして 「フォルダの選択」ダイアログから エクセルファイル 123.xlsxを例えば 開くときに それをa.xlsxという名前に変えて 以下のそれに続くVBAコードにおいて a.xlsxを操作したいのですが、 a = Application.GetOpenFilename() Workbooks.Open a これを実行すると求めるダイアログが表示されて 使いたい123.xlsxを開くをクリックしますが これでは123.xlsxがa.xlsxにはなりません このa.xlsxのファイル名で別途ファイル作成する方法を 御教示いただけると助かります よろしくお願いします win10 office365 コードは以下 部分ですが こういう流れで作成したい所存です Sub あいう() a = Application.GetOpenFilename() Workbooks.Open a 'b.xlsxファイルを新規作成 Workbooks.Add ActiveWorkbook.SaveAs Filename:="C:\Users\USER\Desktop\あいう\b.xlsx", FileFormat:=xlXMLSpreadsheet 'a.xlsxファイルの1行目のA1~AG1のセルの値をコピー Workbooks("a.xlsx").Worksheets("Sheet1").Range("A1:AG1").Copy 'b.xlsxファイルのA3~AG3のセルに貼り付け Workbooks("b.xlsx").Worksheets("Sheet1").Range("A3:AG3").PasteSpecial xlPasteValues 以下省略 よろしくお願いします

  • 複数のブックから特定データ群を新ブックにまとめたい

    こんにちは。 EXCEL2007について、ご教示ください。 EXCEL2007で、複数ブック内の特定シート上にある特定のデータ(複数) を特定ブックにまとめたいのですが、うまくできずに悩んでいます。 <やりたいこと>  ・参照元は特定フォルダ内にある全ファイルが対象(100程度)  ・ブック内の特定シートが対象(シート名は  ・コピー   (1) 元シートのA4~F4セル(セル結合されています)のデータを、     先シートのB2セルへコピー   (2) 元シートのG4~L4(セル結合)のデータを、先シートのC2セル     へコピー   (3) 元シートのG6~R6セルのデータを、先シートのE2セルへコピー  ・コピー2   次ブックを読み込み、1行下(B3、C3、E3)にコピーする。  ・コピー3   以降1行下にコピーし、ファイルが無くなるまで繰り返す。 以上ですが、マクロでできるように教えていただけないでしょうか。 よろしくお願いいたします。

  • エクセルでシートを新規Bookにコピーして保存

    いつもお世話になっております。 毎回お世話になっております。 過去にも似たような質問をさせていただいてその時々の要求は解決しているのですが、悲しいかな各々のVBAが組み合わせられません。(というレベルです) やりたいことは、特定のBookのアクティブシートを別の新規BookのSheet1にコピーして数値で貼り付ける。➣ここまではできました。 問題はこの、新規Bookを指定のセル(D5とA1)の内容をファイル名にして指定のフォルダに保存する。が出来ません。 1.新規BookでVBAを動かしたいのですが、複数のPCで使う時にどこに記録するのかわかりません。 2.コピーして数値で貼り付けから保存までのVBAは元のシートから直接(1回の操作)でも、新規Book1を表示させてからの操作でもどちらでも良いです。 3.Book1を保存するファイル形式はVBAが含まれないxlsxが好ましいです。(メールで送信するので)

  • Excel2007,VBA シートにロードする方法

    VBAのコードがあるファイル(入出力.xlsm)には "シートDATA" "参照データ1" "参照データ2" "参照データ3" "新規データ" ・・・・ というシート名があります。 フォームとボタンを作りました。 「ロード」「セーブ」 「ロード」ボタンをクリックすると ファイル名 "File0001.xlsx"を "シートDATA"というシート名のA5列を軸にしてロードしたいです。 存在しない場合、エラーの場合は"新規データ"というシート名を"ロードDATA"にコピーします。 フォームの「セーブ」というボタンを押すと"File0001.xlsx"というファイル名に "シートDATA"のシートのデータのみ上書きします。 A5列を軸にして保存。 どうしたらいいのでしょうか? A5列を軸にするというのは面倒ならなくてもかまいません。 File0001.xlsxには1シートのデータしかないことになっています。 ファイルに複数シートがある場合はまずいでしょうか? File0001.xlsx File0002.xlsx ・・・ と保存していく予定です。

  • エクセルのデーター移動について

    エクセルで2つのブック、例えばファイル名SYSとファイル名DATAで、DATAのSheet1のA1セルの数値をSYSのSheet1のB1セルにコピーする方法を教えてください。エクセルは2000です

  • エクセルでシートを「移動またはコピー」した場合。

    説明が難しいので記号で説明させていただきます。 ブックA・ブックBを開いて、ブックAのシート(1)をブックBに「移動またはコピー」でコピーします。ブックBに新たにできたシート(1)について、もとのブックAのセルがなんらかの別セルを参照していた場合、そのコピーされたブックBのセルには[A.xls]の文字が入ってしまいます。ブックBのみで使用する場合、もちろん[A.xls]の文字は邪魔になるので、現在はいちいちその文字を削除して使用しています。なにかいい方法が有りますか?

  • 複数sheet(可変)を別bookにコピーする

    Excel VBAでの質問です。 わかる方ご回答いただけると幸いです。 例えば、 現在"9月"というExcelファイルを開いて作業しています。 sheetは"1"~”20”という、作りが同じsheetが20個あります。 <やりたいこと> ・各sheetのA1~D80のセルの値をすべてdeleteする  (ただしsheetによってはA1セルの値を次月の同じsheetのK1セルにコピーする。  コピー後はA1セルの値はdeleteしてよい。) ・”10月”という名前のbookで新規で保存する(毎月名前は変わります) 現在、毎月月末にsheet"1"~"20"までのセルの値をすべて消して 次月に残す値をコピーペーストして”10月”というファイル名をつけて 保存するということを手作業しています。 上記をボタンひとつでやってくれるようなマクロがほしいのですが。 可能でしょうか?