ExcelのVBA について質問があります。
1つのブックの4つのシートに対して4回違うブックのシートからコピぺを繰り返そうと思っております。
Dim Wb1 As Workbook, Wb2 As Workbook, Wb3 As Workbook, Wb4 As Workbook
Dim FullPath1 As String, FullPath2 As String, FullPath3 As String, FullPath4 As String
Dim SourceRng1 As Range, SourceRng2 As Range, SourceRng3 As Range, SourceRng4 As Range
Dim TargetRng1 As Range, TargetRng2 As Range, TargetRng3 As Range, TargetRng4 As Range
Worksheets("kyu").Cells.Clear
Worksheets("nyu").Cells.Clear
Worksheets("gai").Cells.Clear
Worksheets("sesho").Cells.Clear
と、dimでの設定が4種類が4回、元のシートのクリアが4回なので、悩んだ挙句
Dim i As Integer
For i = 1 To 4
SourceRng(i).Copy
TargetRng(i).PasteSpecial Paste:=xlPasteColumnWidths
TargetRng(i).PasteSpecial Paste:=xlPasteValues
TargetRng(i).PasteSpecial Paste:=xlPasteFormats
Application.CutCopyMode = False
i = i + 1
Next
としました。
.PasteSpecial Paste:=pasteall ではないのは、行うと図にされて貼り付け先に貼り付けされてしまうからです。
結局のところ、Dimで指定した数字は(i)としてfor文で可能なのか
Worksheetsは.Cells.Clearでまとめて表現できるのか
.PasteSpecial Paste も短く表現できないか
浅学なので、全く解決策が見いだせません。現在は1から4まで直線的にコピペをVBAで行っております。
簡略化できると嬉しいです。
まずは可能かどうか、そして解決方法を教えていただけると嬉しいです
よろしくお願いいたします。
No.10ベストアンサー
- 回答日時:
>なぜかわかりませんが、動くようになりました
とりあえずOKとしますが、どうも、Dim Excel As New Application
のexcelを使用するのがまずいように思われます。
上記を使用しないバージョンを作成しましたので、こちらもお試しください。(当方の環境では正常に動作することを確認済みです)
画面に表示したくないブックがある為に、Dim Excel As New Application
を使用したかと思いますが、これを使用せずに、非表示にするようにしました。もし、ちらつきが気になるなら、現在のを採用してください。
下記にアップしました。
https://ideone.com/ikKSnB
尚、copyの後pasteするのではなく、直接コピーする
Private Sub copy_sheet2
を作成しました。
全てコピーでOKならこちらでも良いかと思います。
こちらを使うときは、
Call copy_sheet(Fullpath(i), Frsheet(i), mb, Tosheet(i))
を
Call copy_sheet2(Fullpath(i), Frsheet(i), mb, Tosheet(i))
にしてください。
追伸:
本マクロを格納してあるブックは、下記のブックとは別のブックであると理解していますが、あってますか。
配信スケジュール.xlsm
未納本文.xlsm
ワークシート.xlsm
No.7
- 回答日時:
>Private Sub copy_sheetの中にある、TargetRng.PasteSpecial Paste:=が
2つともエラーを起こし、コメントアウトすると完了まで行くのですが
成立させる対処方法はわかりますか?
こちらでは、正常に動作したので、問題ないと思っていましたが、
エラーメッセージは、どのような内容でしょうか。
No.6
- 回答日時:
>まずみたところフルパス FullPath1 = "D: はどのような設定ですか?
申し訳ありません。下記の行は、こちらで動作確認のために追加した行で
削除するのを忘れていました。下記の行は削除してください。
FullPath1 = "D:\goo\excel\goo446\配信スケジュール.xlsm"
FullPath2 = "D:\goo\excel\goo446\未納本文.xlsm"
FullPath3 = "D:\goo\excel\goo446\未納本文.xlsm"
FullPath4 = "D:\goo\excel\goo446\未納本文.xlsm"
No.4
- 回答日時:
>
https://ideone.com/AoYyhB>でよろしいですか?
上記URL参照しました。ありがとうございました。
これから確認してみます。
最後の行(152行目)のEは、End Subであると解釈します。
No.3
- 回答日時:
>文字数が多く、画像にしました。
>審査があるんですね。ありがとうございます
公序良俗に違反する画像の投稿が多いので、画像を審査するようになったと思われます。
提示されたソースをこちらでコピペして、実際の動作を確認したいと思いましたので、全ソースの提示をお願いしました。
申し訳ありませんが、画像ではなく、テキストで提示していただけませんでしょうか。
また、テキストのデータ量が多くて、このサイトにアップするのが大変であれば、ideへ投稿する方法もあります。
https://ideone.com/
を表示し、言語で、Textを選択します。
そこへ、表示したいテキストを貼り付け、Runをクリックすると投稿が完了します。
完了した結果のURLをこのサイトに提示していただければOKです。
No.2
- 回答日時:
>補足は手元に届いてますでしょうか。
確認するすべが見当たらなくて申し訳ございません。補足は画像が含まれるものでしょうか。それであれば、画像の審査をgooの管理者がおこなうので、補足が反映されるまで時間がかかります。
現在、補足は表示されていません。
もし、画像を含まないのであれば、即時に表示されるはずですが、表示されていません。
No.1
- 回答日時:
>現在は1から4まで直線的にコピペをVBAで行っております。
そのマクロで実現したい処理の説明を提示していただけませんでしょうか。
そして、そのマクロ全体を提示していただけませんでしょうか。
そうすれば、良い回答が得られやすくなるかと。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Visual Basic(VBA) 2つ目のコンボボックスが動作しません。 3 2023/03/25 12:29
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Visual Basic(VBA) Excel VBA メール作成について 本文の中にExcel でコピーした図を上下に2つ 貼り付けを 2 2023/06/14 01:48
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
近似した文字列を置換するエクセル関数またはVBAについて
Visual Basic(VBA)
-
ユーザーフォームに別シートからデータを反映させたい。
Visual Basic(VBA)
-
VBEを開くのにコマンド名が「Visual Basic」な理由はなぜ?
Visual Basic(VBA)
-
-
4
Cellsのコードが打てません
Visual Basic(VBA)
-
5
excelの不要な行の削除ができない!
Excel(エクセル)
-
6
Excel VBA マクロ あるフォルダー内の複数のファイルを統合したいです
Visual Basic(VBA)
-
7
VBA 別ブックからコピペしたいのですが、軽くしたいです
Visual Basic(VBA)
-
8
Excel 大なり小なりを表すとき、 例えば「10以上」なら、>=10 と表せますが、 この10の部
Excel(エクセル)
-
9
VBA ファイル名取得
Visual Basic(VBA)
-
10
ExcelのVBAコードについて教えてください。
Visual Basic(VBA)
-
11
エクセルvbaについて
Visual Basic(VBA)
-
12
Excel関数またはVBAでの質問になります
Visual Basic(VBA)
-
13
以下のコードを実行しても、オブジェクト変数または、withブロック変数が設定されていませんとエラーが
Visual Basic(VBA)
-
14
ExcelのVBAコードについて教えてください。
Visual Basic(VBA)
-
15
VBAコードについて教えてください、 下記のコードを一つにまとめる方法を教えてください セルF18に
Visual Basic(VBA)
-
16
配列のペースト出力結果の書式について
Visual Basic(VBA)
-
17
VBAコードについて
Visual Basic(VBA)
-
18
エクセルVBAの配列について
Visual Basic(VBA)
-
19
VBのWPFとはなんでしょうか?
Visual Basic(VBA)
-
20
VBAに関して
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別のシートから値を取得するとき
-
【ExcelVBA】全シートのセルの...
-
ユーザーフォームに入力したデ...
-
【VBA】色のついたシート名を取得
-
セルの値によって、シート見出...
-
ブック名、シート名を他のモジ...
-
別のシートを参照して計算する方法
-
XL:BeforeDoubleClickが動かない
-
VBAで同じシート名のコピー時は...
-
マクロを使って、シート印刷完...
-
ExcelのVBAのマクロで他のシー...
-
VBA 存在しないシートを選...
-
VBA 最終行まで数式をコピーする
-
特定の文字を含むシートだけマ...
-
【Excel VBA】Worksheets().Act...
-
Access エクセルシート名変更
-
ExcelVBA シート名を複数セルか...
-
エクセルVBA 別シートからのコ...
-
同じ作業を複数のシートに実行...
-
実行時エラー'1004': WorkSheet...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別のシートから値を取得するとき
-
ユーザーフォームに入力したデ...
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
同じ作業を複数のシートに実行...
-
ExcelVBA シート名を複数セルか...
-
【ExcelVBA】全シートのセルの...
-
Excel マクロについての相談
-
VBA 存在しないシートを選...
-
実行時エラー'1004': WorkSheet...
-
特定の文字を含むシートだけマ...
-
ExcelのVBAのマクロで他のシー...
-
ブック名、シート名を他のモジ...
-
XL:BeforeDoubleClickが動かない
-
VBA 複数の各シートに行を追加...
-
エクセルのシート名変更で重複...
-
【Excel VBA】Worksheets().Act...
-
シートが保護されている状態で...
-
Excel VBA 複数行を数の分だけ...
-
for 文の 繰り返し処理に使える...
おすすめ情報
目的:一つのBookに4つsheetが存在し、それぞれ朝に日々新しいことを追加されているのを探して追加という単純作業を、マクロで自動的に完成したい、というものです
補足は手元に届いてますでしょうか。確認するすべが見当たらなくて申し訳ございません。
目的:一つのBookに4つsheetが存在し、それぞれ朝に日々新しいことを追加されているのを探して追加という単純作業を、マクロで自動的に完成したい、というものです
届いているかわからないので同じものを投稿させていただきました
文字数が多く、画像にしました。
審査があるんですね。ありがとうございます
https://ideone.com/AoYyhB
でよろしいですか?
名前は消しているつもりです。
End Subで大丈夫です
あと4回の補足しかありませんが、どうぞよろしくお願いいたします。
とても貴重なお時間をいただき、こんなに短い分にまとめ上げてくださり、感謝です。
まずみたところフルパス FullPath1 = "D: はどのような設定ですか?
そうでしたか。早速削除させていただきました。
Private Sub copy_sheetの中にある、TargetRng.PasteSpecial Paste:=が
2つともエラーを起こし、コメントアウトすると完了まで行くのですが
成立させる対処方法はわかりますか?
実行時 1004 rangeクラスのpastespecialメソッドが失敗しましたとでました。
調査中失礼します。
なぜかわかりませんが、動くようになりました
夜遅くまでありがとうございました
原因はわからずじまいです