はじめまして エクセルのマクロ初心者です。
ツール→マクロ→新しいマクロの記録にて
開いているシートをA1~V68まで(すべての範囲でもOKです)をコピーし、別の貼り付け用シートに貼付、3つのタブを印刷して閉じ、開いているシートを表示する。という内容のマクロを登録しました。
台紙で以上のマクロを登録し、台紙を複製しました。
マクロを実行すると複製されたシートのA1~V68までではなく、台紙のA1~V68までが印刷されて困っています。
どうすれば解決するでしょうか???詳しい方おしえてください。
尚、下記に記録されたものを載せておきますので、訂正部分など教えてもらえたら助かります。
(マクロの記録の上部を訂正すると良いような気はするのですが…。初心者なのもので範囲の指定の仕方がわるいのでしょうか???)
よろしくお願いします。
Sub マクロ名()
'
' マクロ名 Macro
' マクロ記録日 : 2007/10/14 ユーザー名 : ???
'
'
Application.Run "hozon1.初期"
Range("A1:V68").Select
Selection.Copy
ChDir "C:\Documents and Settings\Administrator\デスクトップ\日報、点呼簿"
Workbooks.Open Filename:= _
"C:\Documents and Settings\Administrator\デスクトップ\日報、点呼簿\平日,日曜、祭日点呼簿.xls"
Cells.Select
ActiveSheet.Buttons.Add(509.25, 1.5, 72.75, 12.75).Select
ActiveSheet.Paste
Sheets("大型1").Select
Application.CutCopyMode = False
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Sheets("大型2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Sheets("小型1").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
ActiveWindow.Close
ActiveWindow.SmallScroll Down:=-51
Range("J3").Select
End Sub
No.5ベストアンサー
- 回答日時:
#4です。
どのブックの、どこのシートの、どこのセルを、どのブックの、どのシートの、どのセルにコピー&ペーストしたいのか、実行するマクロは何処に書いてあるのか等によって記述は大きく異なるものです。
回答者は少ない記述から環境や状況を予測して書くしかありません。
質問者は自分の環境に置換えて書き直すくらいのスキルが最低限無いと、答えても「上手く動きませんが?」で終了しちゃいます。
どうも説明が不明確なので、他の補足と併せて下記の環境・希望動作と推察して書きました。
試すならば記述の条件をご自身の環境に作って実行して見てください。
1)デスクトップの「日報、点検簿」フォルダに以下の3つの Excelブック がある
日報台紙.xls
平日,日曜、祭日点呼簿.xls
10月分.xls
2)「平日,日曜、祭日点呼簿.xls」には「貼り付け用」「大型1」「大型2」「小型1」というシートがある。
3)Testマクロは「日報台紙.xls」の標準モジュールに記載する。
4)「10月分.xls」と「日報台帳.xls」を同時に開き「10月分.xls」の対象としたいシートをアクティブにした状態でマクロを実行する。
マクロを実行すると「平日,日曜、祭日点呼簿.xls」を開き、「10月分.xls」のアクティブシートのセル A1:V68 をコピーして、「平日,日曜、祭日点呼簿.xls」の「貼り付け用」シートのA1 に貼り付ける。
その後、「平日,日曜、祭日点呼簿.xls」の「大型1」「大型2」「小型1」シートを印刷する。
Sub Test()
Dim ws As Worksheet, wb As Workbook
Set ws = ActiveSheet
Set wb = Workbooks.Open(Filename:=ThisWorkbook.Path & "\平日,日曜、祭日点呼簿.xls")
ws.Range("A1:V68").Copy Destination:=Worksheets("貼り付け用").Range("A1")
wb.Worksheets("大型1").PrintOut
wb.Worksheets("大型2").PrintOut
wb.Worksheets("小型1").PrintOut
End Sub
ありがとうございました。
以上の内容で解決しました!!!
これからもっとマクロを勉強すると共に用語も勉強します。
大変助かりました。
No.4
- 回答日時:
何がしたいのかいまいち理解出来てませんけど、、、
Macro記録は便利ですが、万能ではありません。
シート名やブック名が省略されたりアクティブシートのように記述されるので、複数のブックを操作する場合などは実行中にどこがアクティブになっているかを意識して修正しないとダメです。
「台紙」って言うのがデスクトップの「日報、点呼簿」フォルダにある「平日,日曜、祭日点呼簿.xls」で、「複製されたシート」って言うのは、台紙(平日,日曜、祭日点呼簿.xls)をコピーしたブック内にあるシートの事を意味しているものと想像して回答します。
コピーしたブックが、コピー元と同じ場所にあるなら
Workbooks.Open Filename:= _
"C:\Documents and Settings\Administrator\デスクトップ\日報、点呼簿\平日,日曜、祭日点呼簿.xls"
ここを
Workbooks.Open Filename:= _
"C:\Documents and Settings\Administrator\デスクトップ\日報、点呼簿\コピーしたブック名.xls"
とすると希望動作になりますか?
この回答への補足
回答ありがとうございます。
初心者なの者で説明が下手なので容赦してください。
>台紙」って言うのがデスクトップの「日報、点呼簿」フォルダにある「平日,日曜、祭日点呼簿.xls」で、「複製されたシート」って言うのは、台紙(平日,日曜、祭日点呼簿.xls)をコピーしたブック内にあるシートの事を意味しているものと想像して回答します。
台紙というのは同じフォルダの他のブックにあります
デスクトップの「日報、点呼簿」フォルダの中の「日報台紙.xls」です。(これにマクロを記録しています)
これを基に一ヶ月分、日数分のシートを作っています。例えば、「10月分.xls」という名前のブックの中に1日から31日までの31シート複製しています。
ですからマクロ実行は「10月分.xls」のシート14(14日)でおこないます。
しかし、「日報台紙.xls」で実行して記録したとおり(日報台紙のA1~V68までのセルを選択しコピーする)に動作するので困っています。
「10月分.xls」のシート14(14日)で実行するとシート14のA1~V68までを選択しコピーして、「平日,日曜、祭日点呼簿.xls」に貼り付けしてほしいのです。
以上の場合はどうなりますでしょうか???
お手数ですがもう一度回答おねがいできますでしょうか??
>Macro記録は便利ですが、万能ではありません。
>シート名やブック名が省略されたりアクティブシートのように記述さ>れるので、複数のブックを操作する場合などは実行中にどこがアクテ>ィブになっているかを意識して修正しないとダメです。
確かにそうみたいですね…。勉強になりました。
No.3
- 回答日時:
ActiveSheet.Paste
のあとに
ActiveSheet.Parent.Activate
入れてみてください
1つ確認ですが 複製されたBookに 大型1 とかの
シートはありますか?
この回答への補足
ありがとうございます。
さっそく試してみようと思います。
>1つ確認ですが 複製されたBookに 大型1 とかの
シートはありますか?
はい。\デスクトップ\日報、点呼簿\平日,日曜、祭日点呼簿.xlsブックの中に、貼り付け用、大型1、大型2、小型1の4シートあります。
\デスクトップ\日報、点呼簿\の中に「日報台紙」というブックがあり、そこで作成したシート(マクロ)を基に10月分.xlsというブックを作成しています。
\デスクトップ\日報、点呼簿\10月分.xlsというブックのシートをコピーして、\平日,日曜、祭日点呼簿.xlsの貼り付け用というシートにまず貼り付けてこの三枚のシートを印刷します。
No.2
- 回答日時:
もいちょっと質問表現に気を使ったほうが良い。
ーー
ブック
質問関連のブックはいくつ話題にしているの?
ーー
シート
A1からV68は何なの=>シート名のこと。
V68列はないからシート名のことか。
>すべての範囲でもOKです
とはなにのこと?
>別の貼り付け用シートに貼付
シートはいくつコピーしするの?
現在ある特定のシートにコピーしないとダメなの?
キーとのコピーを作成するではだめなの?
>3つのタブを印刷して
開いている
3つの特定のシートのこと?その場合そういう表現をしないとおもうよ。
>つのタブを印刷して閉じ、開いているシートを表示する
印刷したシートは閉じるの?シートを閉じるとは?
>、開いているシートを表示する
この意味不明。シートをひらくとは。開くとはアクチブにすること?
表示しなくてもアクチブにすれば、あらわれるよ。
>台紙で以上のマクロを
「台帳」ってシート名ですか・なぜ前触れも無く突然出てくるの。
>、台紙で以上のマクロを登録し台紙を複製しました。
台帳がブックなら判るが、シートにマクロを登録し、はありえないし
それだけ複製(コピー張り付け?)するってありえないのでは。
ーー
セル範囲
言及なし??
ーー
ボタンをマクロで作っているが。
質問分では言及なし。
ーー
以上質問分の海洋と、マクロのコードは余り関係が見られない。
=======
少し考えると
質問にはコード以前の記述は掲載する必要が無かったのでは。
=======
3シートを印刷したい??
マクロコード上でその3シートの選択はプログラムのなかで呈したいのですね
ーー
私の場合下記はうまく印刷するようです。
印刷以外何がしたいのでしょうか。
「大型1」等の印刷した結果が、思ったとおりでないのですか・
Sub test01()
Sheets("Sheet1").Select
Application.CutCopyMode = False
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Sheets("Sheet2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Sheets("sheet3").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
ActiveWindow.Close
End Sub
No.1
- 回答日時:
掲載されたマクロをあまり詳しく見ていませんが、ActiveSheet.Paste~ActiveWindow.Closeの箇所を以下のようにしてみたらいかがでしょうか。
印刷するシート名を明示してみました。ActiveSheet.Paste
Application.CutCopyMode = False
Sheets("大型1").PrintOut Copies:=1, Collate:=True
Sheets("大型2").PrintOut Copies:=1, Collate:=True
Sheets("小型1").PrintOut Copies:=1, Collate:=True
ActiveWindow.Close
この回答への補足
回答ありがとうございます。
ためしてみたのですが、ダメでした。
印刷はするのですが、台紙のデータが印刷されてしまい、複製したシートのデータは印刷されません。元のままです。
”開いているシートを選択しコピーする”様に設定できれば良いとは思うのですが…
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【マクロ】プリントスクリーンした画像をエクセルに貼付して印刷したい 6 2022/11/30 20:11
- Excel(エクセル) ②Excel 簡単にシートコピーしたら前日の残高と日付を変更させたい→マクロの記録でエラーが出ます 8 2022/07/16 20:40
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- その他(Microsoft Office) Excelのマクロについて教えてください。 1 2022/03/25 10:03
- Excel(エクセル) エクセル VBAでシートのコピーを作りたい 1 2023/05/18 07:42
- Visual Basic(VBA) データのある範囲を選択するVBAについて 2 2022/09/03 00:20
- Excel(エクセル) Excelでnullになるような式のセルをマクロで空白行と認識させるにはどうすればいいですか? 3 2023/03/13 13:42
- Excel(エクセル) ExcelVBAについて。 2 2022/12/10 20:08
- Visual Basic(VBA) DisplayAlertsブロパティで ”実行時エラー424オブジェクトが必要です” 5 2022/05/15 18:02
- Visual Basic(VBA) マクロで最終行を取得してコピーしたい 3 2022/04/06 19:07
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】毎回、ファイル名が...
-
【マクロ】顧客番号にて一致さ...
-
Excel マクロ 他ブックのシート...
-
エクセルのマクロで指定条件一...
-
EXCELVBA データを自動で別シー...
-
Excel シートを自動作成、セル...
-
Excelで同じシートのコピーを一...
-
エクセルの複数シートの保護を...
-
別シート参照のセルをシート毎...
-
エクセルで前シートを参照して...
-
VBAでシートコピー後、シート名...
-
エクセルで、「1つ前のシート...
-
Excelで金銭出納帳。繰越残高を...
-
エクセルVBAでパスの¥マークに...
-
条件に応じて特定の行を非表示...
-
EXCELで1ヶ月分の連続した日付...
-
Excelでセル内の数式は残し値だ...
-
EXCEL:同じセルへどんどん足し...
-
Excelで連続印刷をするマクロ
-
エクセルで前のシートを連続参...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルのマクロで指定条件一...
-
シートをコピーして シートに...
-
Excelでシート名と最終更新日を...
-
エクセルのマクロ設定について...
-
Excel マクロ 他ブックのシート...
-
Excel シートを自動作成、セル...
-
シートをコピー、シート名を変更
-
Excel で選択しているセルの行...
-
Excel VBA 検索して該当行を抽出
-
エクセル マクロの作り方
-
EXCELVBA データを自動で別シー...
-
新しいマクロの記録でコピーし...
-
Excelで同じシートのコピーを一...
-
エクセルの複数シートの保護を...
-
エクセルVBAでパスの¥マークに...
-
条件に応じて特定の行を非表示...
-
前の(左隣の)シートを連続参...
-
Excelで金銭出納帳。繰越残高を...
-
EXCEL:同じセルへどんどん足し...
-
EXCELで1ヶ月分の連続した日付...
おすすめ情報