見積書の商品を発注したときに、その情報を別ブックで管理したいと思っています。
見積書の発注用シートとは別のシートに管理データを蓄積しながら転記できるマクロは組めたのですが、使い勝手が悪いため全く別のブックに管理データを蓄積したいと思います。
見積書データは保存をするときは、その都度異なるファイル名で保存し、管理データはc:\管理¥集計.xlsで保存します。
途中まで作ってみたのですが、アクティブシートとブックが途中でこんがらがってしまって行き詰っています。
サンプルデータを添付いたしますので、ご教示願えませんでしょうか。
マクロとVBAについては初心者なので大変申し訳ありませんが、よろしくお願い申し上げます。
No.1ベストアンサー
- 回答日時:
マクロを載せているブックに「発注シート」が存在する
「発注シート」のA1,B2,C3セルの内容を,c\管理\集計.xlsのSheet1に転記する
sub macro1()
workbooks.open("C:\管理\集計.xls")
with workbooks("集計.xls").worksheets("Sheet1").range("A65536").end(xlup).offset(1)
.value = thisworkbook.worksheets("発注シート").range("A1").value
.offset(0, 1).value = thisworkbook.worksheets("発注シート").range("B2").value
.offset(0, 2).value = thisworkbook.worksheets("発注シート").range("C3").value
end with
workbooks("集計.xls").close savechanges:=true
end sub
>アクティブシートとブックが途中でこんがらがってしまって行き詰っています。
アクティブ何タラやセレクト・セレクションを使ってマクロを書いていると,そうなりがちです。
サンプルを参考に
どのブックの.何て言うシートの.どこ番地のセル に何をする
という書きぶりに慣れるよう,練習してみてください。
頂いた回答を元に調整したところ、無事に転記ができるようになりました!
マクロの書き方になれるように頑張ります。
ありがとうございました。
No.2
- 回答日時:
No.1 さんが書かれたことがすべてなのですが、
実際の方法として私が好んで実践しているのを紹介させてください。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dim 見積書xls As Workbook, 集計xls As Workbook
Dim 販売記録 As Worksheet, 見積Data As Worksheet
Dim 販売記録_行 As Long, 見積Data行 As Long
Set 見積書xls = ThisWorkbook
Set 集計xls = Workbooks.Open ("C:\集計\集計.xls")
Set 見積Data = 見積書xls.Worksheets("見積Data")
Set 販売記録 = 集計xls.Worksheets("販売記録")
販売記録_行 = ああだこうだ(省略)
見積Data.Range("B21:S30").Copy 販売記録.Cells(販売記録_行, 1)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
すこし冗長ですが、こんな風に書けば間違えずコーディングできます。
ポイントは2点
(1) 日本語で意味の分かる変数名、関数名を使う
(2) オブジェクト(Worksheetなど)は親の名前もハッキリ書く
VBA初心者はオブジェクトの親子関係がよくわからないものですが
このように書く習慣をつけると、自ずと親子関係が分かり、上達が早いです。
余談ですが、『iRow = 』以下の4行は結果として得られた iRow を
何にも使っていませんね。
iRow 以下の部分はサンプルデータをいくつか組み合わせていたときに残ってしまったみたいです。
オブジェクト名など、自分でわかりやすく記述することで間違えないようになるんですね。大変勉強になりました。
Worksheetなら ws、Workbookならwbにしなくてはいけないのかな?と間違って覚えていました。
ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) VBAで同フォルダ内の別ブックを開かず参照して条件の一致する行の指定セルを抽出するには? 1 2022/07/21 19:29
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Excel(エクセル) フォルダ内の全ブックのシート名を変更したい 7 2022/09/22 21:34
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- その他(データベース) Excel VBA 転記について 1 2022/04/20 16:55
- Excel(エクセル) 【マクロ】同じフォルダ内にある複数ブックから1つのブック内の1シートにデータを集めたい 6 2022/09/28 18:16
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 2 2022/11/18 15:34
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
エクセルVBAが途中で止まります
-
【前回の続き続きです、ご教示...
-
エクセルのマクロについて教え...
-
VBA 別ブックからコピペしたい...
-
ExcelのVBAです。フォルダ内の...
-
【前回の続きです、ご教示くだ...
-
VBS Bookを閉じるコード
-
エクセルのマクロについて教え...
-
ADOで複数のBookから抽出
-
【Excel VBA】書き込み先ブック...
-
【マクロ】違うフォルダにある...
-
Excel VBA 保存時にフォルダを...
-
ユーザーフォームの切り替えに...
-
別ブックをダイアログボックス...
-
フォルダ内の全てのファイルに...
-
Excelマクロ 該当する値の行番...
-
【ExcelVBA】インデックスが有...
-
マクロVBA別Excelブックにデー...
-
エクセルマクロで、他ブックか...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
エクセルVBAが途中で止まります
-
別ブックをダイアログボックス...
-
ワイルドカード「*」を使うとう...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
VBS Bookを閉じるコード
-
【ExcelVBA】インデックスが有...
-
VBA コードを実行すると画面が...
-
【ExcelVBA】zip圧縮されたCSV...
-
vbaでvbaProjectのパスワード解...
-
VBAで別ブックのシートを指定し...
-
ExcelのVBAです。フォルダ内の...
-
vbaで他のブックに転記したい。...
-
フォルダ内の全てのファイルに...
-
VBAで複数のブックを開かずに処...
-
VBSでExcelのオープン確認
-
VBA 実行時エラー 2147024893
-
【Excel VBA】書き込み先ブック...
-
VBA シート名が一致した場合の...
おすすめ情報