dポイントプレゼントキャンペーン実施中!

作業ブックに
下記のマクロコードを設定しております。
Sub Edison()
'
' Edison Macro
'

'
ActiveWindow.SmallScroll ToRight:=18
ActiveWindow.SmallScroll Down:=15
ActiveWindow.SmallScroll ToRight:=13
Range("AW26:AW38").Select
Selection.Copy
ActiveWindow.ScrollColumn = 28
ActiveWindow.ScrollColumn = 21
ActiveWindow.ScrollColumn = 1
Range("E26").Select
ActiveSheet.Paste
Range("L26").Select
End Sub
マクロを実行するとセルAW26~AW38をE26~E38迄コピーするマクロです。
例えばセルAW26に=IF(K6="■",AA49,IF(K6="□",AX26,""))を設定し
マクロを事項すると「♯REF」となり(=IF(#REF!="■",#REF!,IF(#REF!="□",F26,""))」
の数式になってしまいます。
マクロを実行し後もE26に「=IF(K6="■",AA49,IF(K6="□",AX26,""))」
をそのままコピーできる方法がありましたら教えてください。
よろしくお願いいたします。
尚、同じように
AW27~AW37→E27~E37も同様に設定したいです。
よろしくお願いいたします。

質問者からの補足コメント

  • うーん・・・

    回答ありがとうございました。
    K6が■の時は固定文字なので問題は無いのですが
    説明不足で申し訳ありません、
    AX26に「=SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( AW48, "P", "" ), ".", "" ), "[", "" ), "]", "" ), "0", "" ), "1", "" ), "2", "" ), "3", "" ), "4", "" ), "5", "" ), "6", "" ), "7", "" ), "8", "" ), "9", "" )」

    No.2の回答に寄せられた補足コメントです。 補足日時:2022/03/16 15:17

A 回答 (2件)

コピー時に相対参照がずれることが原因のようですので、元の式の参照を絶対参照にすれば解決するはずです。


絶対参照はご存知ですよね?
絶対参照・相対参照と$マーク
https://kokodane.com/kihon19.htm
AW26の式を絶対参照にすればコピー後もずれないのでは?

=IF($K$6="■",$AA$49,IF($K$6="□",$AX$26,""))
横方向(AW26→E26)へのコピーのみでしたら行番号の絶対参照は必要ないかもしれません。
>AW27~AW37→E27~E37も同様に設定したいです。
も同様ですが、K6がどのように参照されているかによって絶対参照にする必要があります。
老婆心
マクロの記録で作っているようですが
ActiveWindow.SmallScroll のところは不要に感じます。
この回答への補足あり
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
上手くいきました。
補足は無視してください。

お礼日時:2022/03/16 15:24

こんにちは



通常は、コピペで式がどう変化するかは、設定する関数式を作成するときに考えます。
(参照方式(=絶対参照、相対参照)を学習なさるのが宜しいかと)
ご質問の内容をマクロでなく手動でやるならどうなさいますか?
手動操作を考えて、それをマクロ化なされば良いのではないでしょうか?

まぁ、以下でも結果は同じと思いますけれど・・

Sub hoge()
 Range("E26:E38").FormulaLocal = "=AW26"
End Sub

>AW27~AW37→E27~E37も同様に設定したいです。
他の範囲の場合でも同様ではないかと・・
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!