
お世話になります。
年末に以下の質問で、特定のセルをprnで
出力するマクロを教えて頂きました。
※GooUserラックさんありがとうございました。
【VBA】特定のセルをprnで保存したい
https://oshiete.goo.ne.jp/qa/10170122.html
Sub Sheet2_copy_verA()
Dim i As String
i = Range("B5").Value
Worksheets("Sheet2").Range("A1:A10").Copy
'Worksheets("Sheet2").Range("A6:A10").Copy
Workbooks.Add
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWorkbook.SaveAs Filename:="C:\B\Test-" & i & ".html", _
FileFormat:=xlTextPrinter
ActiveWindow.Close False
End Sub
特に問題なく使っておりました&関数の結果の出力はあきらめていました。
ところがダメ元で関数の結果を出力してみると以下のような内容になりました。
Ⅰ)コピーの範囲:A1からA10
↓
A1からA10の関数の結果をprnで出力(保存)
Ⅱ)コピー範囲:A6からA10
※シングルコーテーションのマクロの場合
↓
A1からA5までの関数の結果をprnで出力(保存)
となりました。要するに、出力範囲をA6からA10に設定しているのに、
無視して頭から5行だけ(A1からA5)出力します。
A6からA10セルの関数の結果をprnで保存したいです。
このマクロのおかしいところを教えて下さい。
※A1からA10が関数でない場合はⅠ)、Ⅱ)ともに正常に動作します
詳細
1)A1からA10は全て関数で、内容は以下のとおりです。
※A1:「=SheetA!A1」からA10:「=SheetA!A10」
※画像を参照して下さい
2)シートの役割は以下の通りです
Sheet1:アクティブシート
※入力
※関数の処理
SheetA:関数の結果の取得
※アクティブシートの関数の結果を所定の順番に並べる
※不要の空白を取り除く
Sheet2:
※prnを出力するシート
※出力エリア確認用:正常に動作すれば「SheetA」から直接出力する予定

No.1ベストアンサー
- 回答日時:
コピー範囲をA6~A10にした場合、貼り付け先がA1からであれば、設定されている式も相対的に
セル番地が変更されます。
同じシート内で試してみていただくとわかると思いますが、Sheet2のA6~A10をコピーして、
同じシートのC1に貼り付けてみてください。参照している式が変わると思います。
なので、貼り付ける際は、値貼り付けを行うことで、SheetAのA6~A10の値をコピーできます。
Sub Sheet2_copy_verA()
Dim i As String
'Range("B5")がどのシートにあるかを明示的に指定しました。
i = Worksheets("Sheet1").Range("B5").Value
'Worksheets("Sheet2").Range("A1:A10").Copy
Worksheets("Sheet2").Range("A6:A10").Copy
Workbooks.Add
'ActiveSheet.Paste
'ペーストする際、値貼り付けに変更しました。
ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
ActiveWorkbook.SaveAs Filename:="C:\B\Test-" & i & ".html", _
FileFormat:=xlTextPrinter
ActiveWindow.Close False
End Sub
ご解答ありがとうございます
お礼が遅くなりすいません。
動作確認させて頂きました。
>同じシート内で試してみていただくとわかると思いますが、Sheet2のA6~A10をコピーして、
同じシートのC1に貼り付けてみてください。参照している式が変わると思います。
↓
確かにマクロでなくても参照範囲は変ってしましいますね。
マクロの時も同様に参照範囲が変わるのに気が付きませんでした。
なので、貼り付ける際は、値貼り付けを行うことで、SheetAのA6~A10の値をコピーできます。
↓
シングルコーテーションで説明して頂きありがとうございます。
自分用の忘備録として説明をつけました。
Sub Sheet2_copy_verB()
Dim i As String
'Range("B5")がどのシートにあるかを明示的に指定しました。
i = Worksheets("外リンク-07").Range("B5").Value
Worksheets("AAA-010").Range("A6:A10").Copy
'先に新規ブックを作成する
Workbooks.Add
'値貼り付けでなければ、'ActiveSheet.Paste'でOK
'https://oshiete.goo.ne.jp/qa/10170122.html
'値貼り付けの場合
'PasteSpecial Paste:=xlPasteValues
'「PasteSpecial」の左に場所(A1)も指定する
ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
ActiveWorkbook.SaveAs Filename:="C:\B\Test-" & i & ".html", _
FileFormat:=xlTextPrinter
ActiveWindow.Close False
End Sub
ということですね、よくわかりました。
基本的なことから説明して頂き助かりました。
今回は解答して頂き、ありがとうございます。
機会がありましたら、またお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセル関数についてお教えください 3 2023/07/24 12:33
- Excel(エクセル) EXCEL 複数の条件に合致する個数を求めるには? 3 2022/04/19 16:39
- Excel(エクセル) Excelのマクロで、特定のセルから順番に値を取得したい 5 2022/12/06 15:34
- Excel(エクセル) Vba エクセルマクロで、 A列の、A1セルからA10セルに空白のある行を削除する、のは Range 3 2022/11/05 17:44
- Excel(エクセル) エクセル表作成について 5 2023/03/12 13:25
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- Visual Basic(VBA) 【VBA】Excelの特定範囲のセルを画像で保存したい 2 2023/01/25 13:06
- Excel(エクセル) エクセルのA1~A5の任意のセルを選んだら1、A6~A10のセルなら2と返す設定にしたいと思ってます 6 2023/03/20 18:46
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- Excel(エクセル) 【VBA】PDF出力に任意のファイル名前を付ける方法 3 2023/07/21 10:55
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
VBでステッピングモーターを動...
-
4Kの外部モニターに出力すると...
-
プログラムについての質問です...
-
VBA(エクセル)で『17.10.11』を...
-
【VBA】特定のセルをprnで保存...
-
cout と cerrの違い
-
ExcelマクロでIEのHP上のダウン...
-
CRC16計算について
-
TV出力ポートをOFFにすれば良い...
-
マクロを教えてください。
-
PCの設定「サウンド」の「出力...
-
ListViewの複数選択について
-
1〜50まで順に数字を入力し、3...
-
スマホ充電器購入にあたり
-
コンセントの電力は入力と出力...
-
ジャイロセンサーの繰り返し誤...
-
DVIが認識されません…
-
printfとputcharの違いは
-
Accessのテーブルからcsv出力す...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
4Kの外部モニターに出力すると...
-
プログラムについての質問です...
-
PD充電器について
-
cout と cerrの違い
-
スマホ充電器購入にあたり
-
Accessのテーブルからcsv出力す...
-
MMDでavi出力が出来ない
-
printfとputcharの違いは
-
VBAのExecメソッドで画面を非表...
-
TV出力ポートをOFFにすれば良い...
-
COBOLのMOVEで桁数が異なる場合
-
VBAでテキスト出力時のスペース...
-
ACCESS クエリ→フォーム...
-
coutで出力した文字を消去する...
-
4種類(A4縦、A4横、A3縦、A3横)のヘ...
-
Windows Formアプリからコンソ...
-
コンセントの電力は入力と出力...
-
C#でアクセス権限の取得方法が...
-
【VBA】PDFを2in1で出力したいです
おすすめ情報
ご解答ありがとうございます。
すいませんが多忙のため、少しお時間を下さい。
近日中に動作確認をして、
改めてお礼、質問、etc.をさせて頂きます。
この度はご解答ありがとうございます。