advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 384 for フォルダ ブック シート 転記 (0.038 sec.)
フォルダ (4446), ブック (11580), シート (35662), 転記 (4285)
[[20210407134732]]
#score: 8791
@digest: aa90b7757684498e04e12831721e2e30
@id: 87263
@mdate: 2021-04-09T08:45:32Z
@size: 15279
@type: text/plain
#keywords: ルxl (47671), oooo (37241), ンフ (32040), 合ca (21952), 地等 (17553), メイ (16604), う. (15374), ダパ (10087), 転記 (9760), ス& (9751), 記先 (9519), スas (9233), 記元 (9210), ファ (7193), ァイ (5569), 号) (5322), ク名 (5040), 目・ (4820), イル (4662), ・d (4077), xlsx (4046), buf (3696), イン (3241), ォル (3006), パス (2601), ルダ (2575), 番目 (2569), ル名 (2400), 番地 (2321), うう (2262), 選択 (2220), 2021 (2152)
『データの転記についてご教授いただければと思います。』(VBA初心者)
エクセルのVBAについて質問です。 データの転記についてご教授いただければと思います。 メインファイルのセルに記載しているファイル名から特定セルの数字や文字をメインファイルの特定のセルにデータを転記したいです。 メインファイルのセルを選択(複数選択)しファイルを開くところまで(ファイルは開かず出来ればなお助かります)は出来たのですが、そこからメインファイルへのデータの転記のやり方があれば教えていただけると幸いです、宜しくお願い致します。 なお、メインファイルの転記先のセルは、選択した列によって変わります。 作業の流れです。 1、メインファイルのセルを選択(ファイル名) 2、マクロを実行(データ転記ボタン) 3、メインファイルのセルに選択したファイル名の中からデータが転記 Sub 複数選択() Dim f As String, fld As String, key As String Dim buf As Range 'フォルダ fld = "C:¥OOOO¥OOOO¥OOOO¥OOOO¥" For Each buf In Selection 'ファイルキーワード(先頭部分) f = Dir(fld & "¥" & buf.Value & "*.xlsx") If f = "" Then Else Do While f <> "" Workbooks.Open fld & "¥" & f f = Dir() Loop End If Next buf End Sub < 使用 Excel:Excel2013、使用 OS:Windows8 > ---- どれだけのファイルを開いてどれだけのセルを転記をするのかによって書き方が変わると思います。 単純なものでよいのでしたらそれこそ Workbooks("メインファイル").Worksheets(1).Range("A1") = Workbooks(f).Worksheets(1).Range("A1") とかでもできると思いますし (砂糖) 2021/04/07(水) 14:20 ---- 開いてデータを転記するファイルは多くても10件ほどです。 教えていただいたものは式のどこに記入すれば良いのでしょうか? またデータ転記後ファイルを閉じるのはどうすれば良いでしょうか? どうぞよろしくお願いします。 (VBA初心者) 2021/04/07(水) 14:29 ---- 上の記述の場合だとfを開いた後からfが書き換わる前の間に記入です ワークブックを閉じるならワークブックを開いた後次のワークブックを開く前に ActiveWorkbook.Close で閉じられるんじゃないでしょうか というか上の記述で本当にいいんですか? (砂糖) 2021/04/07(水) 14:37 ---- Sub 複数選択() Dim f As String Dim fld As String 'Dim key As String Dim buf As Range 'フォルダ fld = "C:¥OOOO¥OOOO¥OOOO¥OOOO¥" For Each buf In Selection 'ファイルキーワード(先頭部分) f = Dir(fld & "¥" & buf.Value & "*.xlsx") Do While f <> "" 'データを収集 With Workbooks.Open(fld & "¥" & f) 'ファイルを開く '開いたファイルからデータを収集 .Close SaveChange:=False 'セーブしないで閉じる End With 'データを転記 Select Case buf.Column 'bufの列により分岐 Case 1 To 10 'A〜J列の場合 Case 11 To 20 'K〜T列の場合 Case 21 To 30 'U〜AD列の場合 Case Else '上記以外の場合 End Select f = Dir() Loop End If Next buf End Sub (参考) 2021/04/07(水) 14:43 ---- ご連絡遅くなりすみません。 いただいたアドバイスで無事に出来ました。 'データを転記 Select Case buf.Column 'bufの列により分岐 Case 1 To 10 'A〜J列の場合 Case 11 To 20 'K〜T列の場合 Case 21 To 30 'U〜AD列の場合 Case Else '上記以外の場合 End Select こちらの部分ですが、転記元のA1セルの値や文字をbuf列のB2セルに転記したい場合どういったコードになりますでしょうか? 教えていただけると幸いです。宜しくお願い致します。 (VBA初心者) 2021/04/07(水) 17:53 ---- 横からなので、無理にとは言いませんが、メインファイルの該当シートのレイアウト、【特定セル】の説明(シート、セル番地等)、【転記先セル】の説明(シート、セル番地等)を示してもらえませんか? (もこな2 ) 2021/04/08(木) 08:23 ---- もこな2様 コメントありがとうございます。 メインファイルの該当シートのレイアウト →A列に転記元のファイル名が記入されております。(ファイルの一部名の場合もあり) 【特定セル】の説明(シート、セル番地等) →メインファイルのA列の任意のセルを選択しマクロを実行します。 A25を選択する場合もあれば、A569を選択する場合もあります。 転記先のシート転記元のシートは変動しません。 転記したいセル(複数あります) 転記元D8から転記先E(選択した列番号) 転記元F12から転記先F(選択した列番号) など 【転記先セル】の説明(シート、セル番地等) →シートはマクロを実行する際にセルを選択しファイルを開くシート転記先のシートになります。 セルの番地は例としてA25を選択しファイルを開きデータを転記した場合は列は25で行はEやFになります。 説明がわかりにくく申し訳ありませんが宜しくお願い致します。 (VBA初心者) 2021/04/08(木) 09:13 ---- ■ ちょっとよくわからないので再確認。 >なお、メインファイルの転記先のセルは、選択した列によって変わります。 ですから、 【メインファイルxlsm】の【1番目?】シート _______A________B________C________D________E_____ 1 ああ かか ささ たた なな 2 いい きき しし ちち 【にに】 3 【うう】 くく すす つつ ぬぬ 4 ええ けけ せせ 【てて】 ねね 5 おお ここ そそ とと のの ↑のようなときは、「にに.xlsx」 「うう.xlsx」 「てて.xlsx」から、それぞれ転記するけども、転記先の【列】が違うと解釈しました。 でも、追加された説明だと、 _______A______ 1 ああ 2 いい . . 25 【うう】 26 ええ . . 568 おお 569 【かか】 570 きき . . ↑のようなときに「うう.xlsx」「かか.xlsx」から転記ということになるように思いますが、この解釈で正しいですか? ■2 「■1」の理解が正しいとなると、"選択した列番号"というのがよくわからなくなるのですが、【いつ】選択するのですか? また、【行】はどこになるのですか? ■3 >転記先のシート転記元のシートは変動しません。 ちょっとよくわからないので↓のように、ブックシート、セル番地等を含めて説明してもらえませんか? 「うう.xlsx」の「1番目」のシートの「D3」セル→「メインファイルxlsm」の「集計用」という名前のシートの「25行目・D列」に転記 ■4 >ファイルの一部名の場合もあり ↑例示がないとわかりません。 どのようなときに、どんなファイル名のものをヒットさせればよいか提示してください。 (もこな2 ) 2021/04/08(木) 19:46 ---- コメントありがとうございます。 ★が当方回答です。 ちょっとよくわからないので再確認。 >なお、メインファイルの転記先のセルは、選択した列によって変わります。 ですから、 【メインファイルxlsm】の【1番目?】シート _______A________B________C________D________E_____ 1 ああ かか ささ たた なな 2 いい きき しし ちち 【にに】 3 【うう】 くく すす つつ ぬぬ 4 ええ けけ せせ 【てて】 ねね 5 おお ここ そそ とと のの ↑のようなときは、「にに.xlsx」 「うう.xlsx」 「てて.xlsx」から、それぞれ転記するけども、転記先の【列】が違うと解釈しました。 でも、追加された説明だと、 _______A______ 1 ああ 2 いい . . 25 【うう】 26 ええ . . 568 おお 569 【かか】 570 きき . . ↑のようなときに「うう.xlsx」「かか.xlsx」から転記ということになるように思いますが、この解釈で正しいですか? ★→この解釈で正しいです。 選択する列は常に固定で、A列を選択します。(選択する列は固定で、行がか変わるという事でした、申し訳ありません。) ■2 「■1」の理解が正しいとなると、"選択した列番号"というのがよくわからなくなるのですが、【いつ】選択するのですか? また、【行】はどこになるのですか? ★例:転記元D8から転記先E(最初に選択した行番号)に転記です。 ■3 >転記先のシート転記元のシートは変動しません。 ちょっとよくわからないので↓のように、ブックシート、セル番地等を含めて説明してもらえませんか? 「うう.xlsx」の「1番目」のシートの「D3」セル→「メインファイルxlsm」の「集計用」という名前のシートの「25行目・D列」に転記 ★ 「うう.xlsx」の「1番目」のシートの「D3」セル→「メインファイルxlsm」の「集計用」という名前のシートの「25行目・D列」に転記で正しいです。 ■4 >ファイルの一部名の場合もあり ↑例示がないとわかりません。 どのようなときに、どんなファイル名のものをヒットさせればよいか提示してください。 ★A列セルに記入してあるファイル名は下記などですが。 【うう】 【かか】 【ああ】 実際のファイルは【ああ】、【うう-AAA】、【かか-BBB】などとなっております。 【ああ】の場合はそのままヒットですが セルに記入されているのは【うう】でも、実際のファイルが【うう-AAA】の場合もあるのでこれでもヒットし転記したいと考えております。 ファイル名の一部でもファイルをを開くことは出来たのでそれを使えればと考えております。 宜しくお願い致します。 (おいしい麦茶) 2021/04/09(金) 09:06 ---- 質問された方とニックネームが違いますがどちら様ですか?同じ方であるなら、このトピックでもその説明をされた方がよいとおもいます。 (私見ですが、別人を装ったところで良いことはないとおもうので、ニックネームをコロコロ変えるのはオススメしません) ■5 ★例:転記元D8から転記先E(最初に選択した行番号)に転記です。 「うう.xlsx」の「1番目」のシートの「D3」セル→「メインファイルxlsm」の「集計用」という名前のシートの「25行目・D列」 ちょっとわかりません。もう一度【行・列】について教えてください。 (どの【列】が、どの【列】に対応してるのか) (元データ側はどの【行】のデータを拾えば良いのか) ■6 >ファイル名の一部でもファイルを開くことは出来たのでそれを使えればと考えております。 ではそれを提示してください。(出来ているなら説明は省きますので) ■7 >(ファイルは開かず出来ればなお助かります) これは、手間なので対応しません。 (もこな2) 2021/04/09(金) 09:46 ---- すいません、別の質問と区別する為名前を変えており直すのを忘れておりました、申し訳ありません。 ■5 ★例:転記元D8から転記先E(最初に選択した行番号)に転記です。 「うう.xlsx」の「1番目」のシートの「D3」セル→「メインファイルxlsm」の「集計用」という名前のシートの「25行目・D列」 ちょっとわかりません。もう一度【行・列】について教えてください。 (どの【列】が、どの【列】に対応してるのか) (元データ側はどの【行】のデータを拾えば良いのか) ★元データの拾うセルはD8セルとF12です。 拾うセルはメインファイルで選択した行にかかわらず固定した場所を拾いたいです。 「うう.xlsx」のD8とF12のセルには商品名や金額が記入されており、それをメインファイルに転記したいと考えております。 ■6 >ファイル名の一部でもファイルを開くことは出来たのでそれを使えればと考えております。 ではそれを提示してください。(出来ているなら説明は省きますので) ★'ファイルキーワード(先頭部分) f = Dir(fld & "¥" & buf.Value & "*.xlsx") If f = "" Then Else Do While f <> "" Workbooks.Open fld & "¥" & f このコードを使用してファイル名の先頭部分のみでもファイルを開くことが出来ましたのでそのような説明をさせていただきました。 ■7 >(ファイルは開かず出来ればなお助かります) これは、手間なので対応しません。 ★承知しました。 宜しくお願い致します。 (VBA初心者) 2021/04/09(金) 11:06 ---- すいません、説明をまとめます。 ?@メインファイルの【うう】を選択しマクロ実行 ?A【うう.xlsx】ファイルのD8をメインファイルのD25に転記 ?B【うう.xlsx】ファイルのF12をメインファイルのG25に転記 ?C【ああ】【おお】を選択した場合は選択した列番号に応じてD列とG列に転記 ?D元データのD8とF12は常に同じ場所です。 【メインファイルxlsm】の【1番目】シート _______A________B________C________D________E_________F_________G_____ 1 ああ 2 いい . . 25 【うう】 商品名A 25000 26 ええ . . 568 おお 569 かか 【元データ側 うう.xlsx】の【1番目】 _______A________B________C________D________E________F_____ 1 2 3 4 5 6 7 8 商品名A 9 10 11 12 25000 宜しくお願い致します。 (VBA初心者) 2021/04/09(金) 11:27 ---- では、こんな感じじゃないですか? Sub 複数選択_改() Const フォルダパス As String = "C:¥OOOO¥OOOO¥OOOO¥OOOO¥" Dim ブック名 As String Dim buf As Range Dim srcWB As Workbook With ThisWorkbook.Worksheets(1) For Each buf In Selection '▼ブック名を取得してから、当該ブックを開いて変数にセットする ブック名 = Dir(フォルダパス & buf.Value & "*.xlsx") srcWB = Workbooks.Open(フォルダパス & ブック名) '▼転記する .Cells(buf.Row, "D").Value = srcWB.Worksheets(1).Range("D8").Value .Cells(buf.Row, "G").Value = srcWB.Worksheets(1).Range("F12").Value '▼開いたブックを閉じる srcWB.Close False Next buf End With End Sub (もこな2) 2021/04/09(金) 12:05 ---- ご返信ありがとうございます。 試したところ下記部分でエラーが出てしまいます。 srcWB = Workbooks.Open(フォルダパス & ブック名) オブジェクト変数または With ブロック変数が設定されていません。(エラー番号:91) ご確認いただけると幸いです。 (VBA初心者) 2021/04/09(金) 12:28 ---- こちらに同じ環境がないので、確認はご自身でお願いします。 それが難しいのであれば、↓が実際になんとなっているのか教えてください。(フォルダ名などがばれて困る場合は適当なものにかえてください) Const フォルダパス As String = "C:¥OOOO¥OOOO¥OOOO¥OOOO¥" buf.Value ←がどんな値になっているか (もこな2) 2021/04/09(金) 12:53 ---- ご連絡ありがとうございます。 Const フォルダパス As String = "C:¥Users¥ユーザー¥Dropbox¥見積もりフォルダ¥" buf.Value は「-111」 となっております。 (VBA初心者) 2021/04/09(金) 13:10 ---- うーん。なんででしょうね。↓を実行するとどうなりますか? Sub test() Const フォルダパス As String = "C:¥Users¥ユーザー¥Dropbox¥見積もりフォルダ¥" Dim ブック名 As String ブック名 = Dir(フォルダパス & -111 & "*.xlsx") If ブック名 = "" Then MsgBox "指定フォルダに「-111」で始まるxlsxファイルが存在しません" Else Workbooks.Open フォルダパス & ブック名 MsgBox ActiveWorkbook.Name & "を開きました" End If End Sub (もこな2) 2021/04/09(金) 13:21 ---- いただいたコードを実行したところ-1111から始まるファイルは無事に開きました。 ファイルの場所や元データ等を変えてもう少し試してみます。 (VBA初心者) 2021/04/09(金) 13:52 ---- ちょっと↓を実行してみて、イミディエイトになんと出力されるか教えてもらえませんか? (エラー番号:91ということなので、私が思ってるエラーとは根本的に違うかもしれませんが・・・) Sub テスト用() Const フォルダパス As String = "C:¥Users¥ユーザー¥Dropbox¥見積もりフォルダ¥" Dim ブック名 As String Dim buf As Range With ThisWorkbook.Worksheets(1) For Each buf In Selection Debug.Print " bufのアドレス:" & buf.Address(RowAbsolute:=False, ColumnAbsolute:=False, External:=True) Debug.Print " bufの値 :" & buf.Value ブック名 = Dir(フォルダパス & buf.Value & "*.xlsx") Debug.Print " ファイル名 :" & ブック名 & vbLf Next buf End With End Sub (もこな2) 2021/04/09(金) 17:45 ...
https://www.excel.studio-kazu.jp/wiki/kazuwiki/202104/20210407134732.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97050 documents and 608253 words.

訪問者:カウンタValid HTML 4.01 Transitional