advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 11 for 別のブック コピー オブジェクト 明示 (0.020 sec.)
別のブック (602), コピー (26158), オブジェクト (4985), 明示 (842)
[[20220707154355]]
#score: 11252
@digest: a9f06f7680168a9dd9702a39580a9428
@id: 91758
@mdate: 2022-07-28T06:15:57Z
@size: 6139
@type: text/plain
#keywords: book999 (59986), thissheet (18074), xlopenxmlworkbookmacroenabled (8339), 者向 (5044), 部品 (3945), fileformat (3687), ダパ (3668), desktop (3281), 製品 (2912), 品3 (2764), filename (2543), 品c (2430), xlsm (2366), 品1 (2085), workbooks (2066), worksheets (1999), 品b (1832), 張子 (1790), 品a (1596), lastrow (1531), 拡張 (1465), cell (1408), users (1308), yyyy (1224), パス (1182), ォル (1169), csv (1112), 保存 (1057), ルダ (1001), ブッ (934), book1 (919), thisworkbook (852)
『セルの値と同じブックを開き編集する』(初心者向け)
よろしくお願いします。 やりたいことは 1 Book999.csvをBook999(yyyy-mm-dd-hh-mm-ss).xlsmとして保存 2 Book1.xlsmのsheet2をBook999(yyyy-mm-dd-hh-mm-ss).xlsmに追加 現在デスクトップに Book999.csv Book1.xlsm というファイルがあります Book1.xlsmのA1セルにBook999と入力するとBook999.csvが開くようになりましたが、それ以上のことをするにはどうしたらよいかわかりません。 book999.csvの内容(シートは1つしかありません) A B C 1 製品A 10 2 製品B 10 3 製品C 10 Book1.xlsmの内容(シート1、シート2があります) シート1 A2に「↑対象のCSVの名前を入力してください」と入力されているのと C3付近に下記VBAを実行するためのボタンがあります A B C 1 2↑対象のCSVの名前を入力してください 3 【ボタン】 シート2(このシートをBook999(yyyy-mm-dd-hh-mm-ss).xlsmに追加したい) A B C 1 製品A 部品1 部品4 2 製品B 部品3 部品2 3 製品C 部品1 部品3 Sub TEST() Dim CELL As String CELL = Range("A1").Value & ".csv" Workbooks.Open Filename:="C:¥Users¥SUWA1029¥Desktop¥" & CELL よろしくお願いします < 使用 Excel:Excel2019、使用 OS:Windows10 > ---- コメントがつきませんね。 1. 対象のCSVファイルを開く(これはすでに出来ている) 2. シートをコピーする(マクロ記録を取れば、コードがわかります) 3. s = Format(Now(), "yyyy-mm-dd-hh-mm-ss")を計算しておく。 4. ファイルを保存する( 3.のs を織り込む) ということかと思います。トライしてみてください。 (γ) 2022/07/08(金) 07:59 ---- Sub TEST() Dim CELL As String Dim LastRow As Long CELL = Range("A1").Value & ".csv" Workbooks.Open Filename:="C:¥Users¥USER¥Desktop¥" & CELL ActiveWorkbook.SaveAs "C:¥Users¥USER¥Desktop¥" & "AAA" & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled ThisWorkbook.Worksheets("Sheet2").Copy after:=Workbooks("AAA.xlsm").Worksheets(1) Dim r As Long r = Workbooks("AAA.xlsm").Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row '別ブックの最終行を参照する Workbooks("AAA.xlsm").Worksheets(1).Range("H1:H" & r) = "=VLOOKUP(D1,Sheet2!A:B,2,FALSE)" Dim sheet1 As Worksheet Set sheet1 = Worksheets(1) sheet1.Activate 'Workbooks("AAA.xlsm").Worksheets(1).Range("A1").Select End Sub 美しくはないですが、やりたいことができました。 γさんありがとうございました (初心者向け) 2022/07/12(火) 15:42 ---- お疲れ様。 yyyy-mm-dd-hh-mm-ssというのがなくなりましたが...。 こんな書き方もできると思います。参考にしてください。 Sub test() Const folder As String = "C:¥Users¥USER¥Desktop¥" Dim filename As String Dim thisSheet As Workscheet Dim wb As Workbook Dim ws As Worksheet Dim lastRow As Long Set thisSheet = ThisWorkbook.Worksheets("Sheet1") filename = thisSheet.Range("A1").Value & ".csv" Set wb = Workbooks.Open(filename:=folder & filename) wb.SaveAs folder & "AAA" & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled Set ws = wb.Worksheets(1) ThisWorkbook.Worksheets("Sheet2").Copy after:=ws lastRow = ws.Cells(Rows.Count, 1).End(xlUp).Row ws.Range("H1:H" & lastRow).Formula = "=VLOOKUP(D1,Sheet2!A:B,2,FALSE)" ws.Activate ''wb.Save ''wb.Close End Sub (γ) 2022/07/12(火) 21:00 ---- 既にγさんから、アドバイスがあるところですが、ちょっとほかに気になるところもあるので何点か。 ■1 VBAの世界では、ブックやシートなど(オブジェクトといいます)は、きちんと指定すればいちいちアクティブにしたり選択したりする必要はありません。 また、「標準モジュール」でシートの指定を省略するとActiveSheetを指定したとみなされるルールです。 したがって、可能であれば対象のオブジェクトをきちんと指定するとよいとおもいます。 ■2 デスクトップのようなフォルダは【特殊フォルダ】と呼ばれ、取得する方法が存在します。 もちろんコード中に、フォルダパスを直接書いても問題はありませんが、覚えておいて損はないテクニックだとおもいますので、興味があれば↓を読んでみてください。 【参考】 http://officetanaka.net/excel/vba/tips/tips107.htm ■3 ブックを保存するときに拡張子まで指定していますが、実は拡張子を指定しない場合「FileFormat」にあわせてエクセル君が適切なものを付けてくれます。 保存時に拡張子まで指定することが正しくないとは言いませんが、まちがった拡張子を指定してしまうリスクを考えると、エクセル君に任せてしまうのも一考の価値があるとおもいます。 さらに、今回はブックとして開いたCSVと同じ場所に保存するということなので、ブックのPathプロパティを使えば保存するフォルダのパスは得られます。 ■4 ということを踏まえると↓のように書いてもOKかと思います。 Sub 別案2() Dim フォルダパス As String フォルダパス = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "¥" Stop 'ブレークポイントの代わり With Workbooks.Open(Filename:=フォルダパス & ActiveSheet.Range("A1").Value & ".csv") .SaveAs Filename:=.Path & "¥AAA", FileFormat:=xlOpenXMLWorkbookMacroEnabled ThisWorkbook.Worksheets("Sheet2").Copy after:=.Worksheets(1) .Worksheets(1).Range("H1", .Worksheets(1).Cells(.Worksheets(1).Rows.Count, "A").End(xlUp).Offset(, 7)).Formula = _ "=VLOOKUP(D1,Sheet2!A:B,2,FALSE)" Application.Goto .Worksheets(1).Range("A1") End With End Sub ※ActiveSheet.Range("A1").Value にしているところも明示的に指定できるならば、そちらを推奨。 (もこな2 ) 2022/07/13(水) 19:50 ---- 余談ですが、Sheet2のシートモジュールに何か記述があるのでしょうか? 上記のコードは別のブックにあるはずですし、提示の処理内容であればマクロ付きブックとして保存する必要はないですよね。 (もこな2) 2022/07/15(金) 07:44 ---- γさん もこな2さん 返事が遅くなり申し訳ありません。 γさん yyyy-mm-dd-hh-mm-ssは無くてもいいのではないかと、妥協してしまいました。 マクロとても参考になります。 ありがとうございます。 もこな2さん すべてのtipsが参考になります。 マクロありがとうございます。 sheet2には送付先の住所録が付いています。 マクロで作成したブックなのでマクロ有効形式にしないと保存できないものだと思っていました。 (初心者向け) 2022/07/28(木) 15:15 ...
https://www.excel.studio-kazu.jp/wiki/kazuwiki/202207/20220707154355.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97054 documents and 608267 words.

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