お世話になります。
年末に以下の質問で、特定のセルを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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ハマっている「お菓子」を教えて!
この世には、おいしいお菓子がありすぎて……。 次何を食べたらいいか迷っています。 みなさんが今、ハマっている「お菓子」を教えてください!
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
CDの保有枚数を教えてください
ひとむかし前はCDを買ったり借りたりが主流でしたが、サブスクで簡単に音楽が聴ける今、CDを手に取ることも減ってきたかと思います。皆さんは2024年現在、何枚くらいCDをお持ちですか?
-
昨日見た夢を教えて下さい
たまにすごいドラマチックな夢見ること、ありませんか? 起きてからも妙に記憶に残っているような、そんな夢。
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
【VBA】特定のセルをprnで保存したい
Excel(エクセル)
-
Excelで指定範囲だけを(.prn)保存する
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
4Kの外部モニターに出力すると...
-
MMDでavi出力が出来ない
-
無線とかアンテナに関しの質問...
-
アクセスでエクセルに出力する...
-
COBOLのMOVEで桁数が異なる場合
-
Excel VBAで値を変えながら、pd...
-
センサーのタンパー出力について
-
cout と cerrの違い
-
プログラムについての質問です...
-
ACCESS フォームで選択したレコ...
-
VBAで有効数字の設定
-
VBAでIEを操作、ポップアップさ...
-
【VBA】特定のセルをprnで保存...
-
CrystalReportの文字列の折返し...
-
加速度センサを用いて速度計測
-
エクセルVBAからOUTLOOKの操作...
-
Excel VBA テキストボックスに...
-
VBAのExecメソッドで画面を非表...
-
C#でアクセス権限の取得方法が...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
4Kの外部モニターに出力すると...
-
MMDでavi出力が出来ない
-
プログラムについての質問です...
-
コンセントの電力は入力と出力...
-
cout と cerrの違い
-
COBOLのMOVEで桁数が異なる場合
-
VBAのExecメソッドで画面を非表...
-
アクセスでエクセルに出力する...
-
Windows Formアプリからコンソ...
-
VBAでテキスト出力時のスペース...
-
coutで出力した文字を消去する...
-
Accessのテーブルからcsv出力す...
-
スマホのバッテリー消費につい...
-
ACCESS クエリ→フォーム...
-
テキストファイルから特定の文...
-
ACCESSからExcelへエクスポート...
-
無線とかアンテナに関しの質問...
-
CRC16計算について
-
printfとputcharの違いは
おすすめ情報
ご解答ありがとうございます。
すいませんが多忙のため、少しお時間を下さい。
近日中に動作確認をして、
改めてお礼、質問、etc.をさせて頂きます。
この度はご解答ありがとうございます。