Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


56584 / 76732 ←次へ | 前へ→

【24898】Re:複数の選択範囲に対して値の貼り付けをしたい。
発言  ichinose  - 05/5/12(木) 21:19 -

引用なし
パスワード
   K さん、Jakaさん
こんばんは。

>コードを書き進めていくうちに別の疑問が生じました。
>
>Option Explicit
>Const Fund1 As String = "A"
>Const Fund1L As String = "A MV(L)"
>Const Fund1S As String = "A MV(S)"
>Const FileName As String = "Nov04.xls"
>
>
>Sub Format()
>Worksheets(PGSFund1).Range("g3:m6,g8:m10,g12:m12, _
>g14:m14,g16:m16,g19:m21,g23:m34,g36:m43,g45:m52, _
>g54:m55,g57:m59,g61:m63,g65:m67, _
>g69:m71,g73:m74,g76:m76,g78:m79,g82:m83, _
>g85:m91,g93:m94").ClearContents
>Worksheets(Fund1).Range("G3").FormulaR1C1 = _
>    "='" & Fund1L & "'!RC-'" & Fund1S & "'!RC"
>Worksheets(Fund1).Range("G3").Copy
>Worksheets(Fund1).Select
>Range("H3:M3,g4:m6,g8:m10,g12:m12,g14:m14, _
>g16:m16,g19:m21,g23:m34,g36:m43, _
>g45:m52,g54:m55,g57:m59,g61:m63, _
>g65:m67,g69:m71,g73:m74,g76:m76,g78:m79, _
>g82:m83,g85:m91,g93:m94").Select
>Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
>    SkipBlanks:=False, Transpose:=False
>
>'ここでWorksheets(PGSFund1).Range("g3:m6,g8:m10,g12:m12,g14:m14,g16:m16,g19:m21,g23:m34,g36:m43, _
>g45:m52,g54:m55,g57:m59,g61:m63,g65:m67,g69:m71,g73:m74,g76:m76, _
>g78:m79,g82:m83,g85:m91,g93:m94")
>に入っている式の結果を、同じ範囲に値として貼り付けたいのですがどうしたらよいでしょうか。
>「新しいマクロの記録」を使って自分で勉強しようと思いましたが、「そのコマンドは複数の選択範囲に対して実行できません。」のメッセージが出てきてしまいました。
>
>End Sub
まず、「同じ範囲に値として貼り付けたい」ですが、

セルをひとつに限定した場合(例えばセルA1)、

with Worksheets(PGSFund1).Range("a1")
  .value=.value
  end with

で可能です。
これをK さんの例では、指定されたセル範囲をエリア単位で
変換します。
'===========================================================
Sub test()
Dim rng As Range
With Worksheets(PGSFund1).Range _
 ("g3:m6,g8:m10,g12:m12,g14:m14,g16:m16,g19:m21,g23:m34,g36:m43," & _
 "g45:m52,g54:m55,g57:m59,g61:m63,g65:m67,g69:m71,g73:m74,g76:m76," & _
 "g78:m79,g82:m83,g85:m91,g93:m94")
  For Each rng In .Areas
   With rng
    .Value = .Value
     End With
   Next
  End With
End Sub

尚、センテンスが複数行になるときに付ける 「_」を
文字列内で"・・・・・ _"という使い方をされていますが、
これだと複数行とは認識しません。
この場合は、一度文字列を終わらせて&で連結しましょう。

1 hits

【24863】変数として宣言したシート名やファイル名を使って計算 K 05/5/11(水) 23:25 質問
【24864】Re:変数として宣言したシート名やファイル... ichinose 05/5/12(木) 7:43 発言
【24869】Re:変数として宣言したシート名やファイル... K 05/5/12(木) 10:08 お礼
【24886】Re:変数として宣言したシート名やファイル... K 05/5/12(木) 15:33 質問
【24888】Re:変数として宣言したシート名やファイル... Jaka 05/5/12(木) 16:04 発言
【24909】ブック全体に対しての置換 K 05/5/13(金) 14:15 質問
【24913】Re:ブック全体に対しての置換 Jaka 05/5/13(金) 15:08 回答
【24870】複数の選択範囲に対して値の貼り付けをした... K 05/5/12(木) 10:38 質問
【24898】Re:複数の選択範囲に対して値の貼り付けを... ichinose 05/5/12(木) 21:19 発言

56584 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free