Excel VBAのことで伺います。office365を使用しています。
以下のとおりマクロを作りましたが,次の動きをするマクロにしたいと思っています。
コピペ元のセル番地を格納する変数が必要だと思うのですが,どのようにそれを宣言すれば良いか等ご教示願います。(今の状態だと,常にB5セルにカーソルが移動して終了してしまいます)
① 「回答」シートにおいてカーソルのある行のA列の値を,B5セルにコピペ
② 「様式」シートの範囲指定した箇所を印刷
③ 「回答」シートの①の動作のときにカーソルのあった行のA列のセル(要は,コピペ元のセル)に戻る。
以下 現状のコード
----------------------------------------------------------------------------------------------
Sub 印刷()
Sheets("回答").Cells(Selection.Row, 1).Select
Selection.Copy
Sheets("回答").Range("B5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("様式").Select
Application.CutCopyMode = False
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Application.Goto Sheets("回答").Range("B5")
End Sub
No.2ベストアンサー
- 回答日時:
連投すみません
書き換えてしまったので追記します
>コピペ元のセル番地を格納する変数が必要だと思うのですが
今回の処理の場合必要ではなさそうですが方法としては2つあります
セル番地を格納する方法
Sub 印刷()
Dim セル番地 As String
セル番地 = Selection.Address
・
・
Application.Goto Sheets("回答").Range(セル番地)
セルオブジェクト自体を格納する方法
Dim セル As Range
Set セル = Selection
・
・
Application.Goto セル
注意 Selectionは状態を示すものなので セルでない場合があります
(図を選択しているなどの状態)このような場合プログラムはエラーが返されます
エラーを回避するためにはSelectionを使う前に対象(今回セル)を確認する必要があります
ありがとうございます。
しかし,書いていただいたコードですと,カーソルのあるセルが変数として保存され,最後はそのセルに戻るコードだと思います。
最後は,カーソルのある行のA列に戻るにはどのようなコードにすれば良いかご教示いただけないでしょうか?
教えていただいた「セル番地を格納する方法」の方で考えていますが,
変数定義の際に,
セル番地=Cells(ActiveCell.Row, 1)
としても,デバックで止まってしまいます。
No.3
- 回答日時:
こんばんは
すでに回答が出ていますけれど・・
①文字通りに「カーソルのある行」のA列と解釈しました
(A列以外であっても、その行のA列を採用します)
以下のコードではSelectionではなく、確実なActiveCellを使用しています。
②「範囲指定した箇所を印刷」とありますが、ご提示のコードでは
範囲指定をしていません。
ですので、シートに印刷範囲を指定してあるものと解釈し、
そのままにしてあります。
③最初にカーソルが別の列に合っても、その行のA列を選択した状態になります。
以下、ご参考までに。
※ 「回答」シートを表示した状態でないと動作しません。
Sub 印刷()
If ActiveSheet.Name <> "回答" Then Exit Sub
Cells(ActiveCell.Row, 1).Select
Range("B5").Value = Selection.Value
Worksheets("様式").PrintOut
End Sub
ありがとうございます。
①,②についてですが,おっしゃるとおりの意図・状態で質問させていただきました。
伺いたいのですが,実は今回の紙媒体で印刷するコードに加え,PDFの作成を行うコードも作りたいと思っています。
今の状態では,以下のようにそのコードを書いていますが,様式シートでselectを使っているため,カーソルが様式シートにある状態でマクロが終わってしまいます。
当初の質問どおり「最初にカーソルのあった行のA列」でマクロが終わるようにするにはどのようにしたら良いでしょうか。
また,このコードだと,作成したPDFが表示されますが,そのときの表示倍率を60%程度にすることはできますか?
いろいろと申し訳ないですが,ご教示いただけますようお願い申し上げます。
Sheets("様式").Select
Application.CutCopyMode = False
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=myfolder & "回答\" & text & ".pdf", OpenAfterPublish:=True, IgnorePrintAreas:=False
No.1
- 回答日時:
>コピペ元のセル番地を格納する変数が必要だと思うのですが,どのようにそれを宣言すれば良いか等ご教示願います。
これについてはそのような構想でも良いと思いますが そもそもSelectしなければ解決できます
① 「回答」シートにおいてカーソルのある行のA列の値を,B5セルにコピペ
コードを見ると値貼り付けのようですのでValue=Valueで代入する
② 「様式」シートの範囲指定した箇所を印刷
現行で良いがSelectをしない様に書く
③ 「回答」シートの①の動作のときにカーソルのあった行のA列のセル(要は,コピペ元のセル)に戻る。
Selectをしなければ③は不要になります
1つ気になることは カーソル これがセル内に表示される状態のときはマクロは実行できないはずですので選択せるとします
コード全体を添削すると
Sub 印刷()
Sheets("回答").Range("B5").Value = Sheets("回答").Cells(Selection.Row, 1).Value
Sheets("様式").PrintOut Copies:=1, Collate:=True
End Sub
選択しているセルの値を指定セルに代入して様式シートをPrintOutをしています
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
準・究極の選択
「年収1000万円で一生カレーライス」か 「年収180万円で毎日何でも食べ放題」 あなたはどちらを選びますか?
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
【VBAエラー】Nextに対するForがありません 対策について
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【Excel】指定したセルの名前で...
-
ExcelVBAを使って、値...
-
i=cells(Rows.Count, 1)とi=cel...
-
EXCELで変数をペーストしたい
-
エクセルVBAでコピーして順...
-
screenupdatingが機能しなくて...
-
【VBA】指定したセルと同じ値で...
-
クリックされたセルの位置を取...
-
Excel VBA頭文字検索方法につい...
-
”戻り値”が変化したときに、マ...
-
Excel-VBA セルのデータ書出し
-
プラスの数をマイナスにしたい...
-
TODAY()で設定したセルの日付...
-
特定のセルが空白だったら、そ...
-
VLOOKUP関数で別ファイルを指定...
-
引数のリセットと図形の変更
-
【Excel】セルの背景色、文字色...
-
Application.Matchで特定行の検索
-
エクセルのVBAのコード内で指定...
-
エクセルの参照先セルの選択に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
i=cells(Rows.Count, 1)とi=cel...
-
特定のセルが空白だったら、そ...
-
Excelで指定した日付から過去の...
-
【Excel VBA】指定行以降をクリ...
-
EXCELで変数をペーストしたい
-
Excelのプルダウンで2列分の情...
-
【Excel】指定したセルの名前で...
-
Excelシートのあるセルから値を...
-
特定の文字を条件に行挿入とそ...
-
セル色なしの行一括削除
-
連続する複数のセル値がすべて0...
-
指定した条件で行セルを非表示...
-
vba 隣のセルに値がある行だけ...
-
Application.Matchで特定行の検索
-
Excel vbaで特定の文字以外が入...
-
TODAY()で設定したセルの日付...
-
EXCELのVBA-フィルタ抽出後の...
-
【VBA】指定したセルと同じ値で...
-
”戻り値”が変化したときに、マ...
おすすめ情報
昨日,追加で質問させていただきましたが,なんとか解決できました。
昨日,質問させていただきましたが,なんとか,希望するセルで最後は終わるようにできました。
ありがとうございます。