初歩的な質問です。
Range("M12:O12").FormulaR1C1 = Range("M11:O11").FormulaR1C1
Range("M13:O13").FormulaR1C1 = Range("M11:O11").FormulaR1C1
Range("M14:O14").FormulaR1C1 = Range("M11:O11").FormulaR1C1
Range("M15:O15").FormulaR1C1 = Range("M11:O11").FormulaR1C1
上記をまとめて、
Range("M12:O15").FormulaR1C1 = Range("M11:O11").FormulaR1C1
のようにすることは可能ですか?
まとめてコード実行すると、正確な数値が表示されないのですが。
No.2ベストアンサー
- 回答日時:
No1です。
>FormulaLocal の「Local」は必要なものですか?
失礼いたしました。 調べたところ不要なようですね。
(A1形式はFormulaLocalと勝手に思い込んでいたので、認識を訂正できました)
ついでにもう少しテストしてみました。
(と言うか、観察してみただけですが・・)
セル範囲に代入すると「エクセルの自動調整機能」が悪さをするのかと思いましたが、必ずしもそうでは無いようです。
設定対象がセル範囲であっても
Range("M11:M15").FormulaR1C1 = Range("M11").FormulaR1C1
であれば、正しく(=期待通りに)設定することができる様です。
仮に、M11:O11がR1C1形式で同じになる式だったとすると、
Range("M11:O15").FormulaR1C1 = Range("M11").FormulaR1C1
のように平面的に設定しても正しく(=期待通りに)設定することができます。
どうやら、右辺が配列になった場合にご質問のような事象が起きる(=参照位置の調整が行われる)ようですね。
ご提示の、
Range("M11:O15").FormulaR1C1 = Range("M11:O11").FormulaR1C1
だと、コピー方向である行方向で参照位置が2ずつずれることが起きます。
これを、例えば、
Range("M11:O15").FormulaR1C1 = Range("M11:M15").FormulaR1C1
とすると、今度は列方向で同様の事象が発生しますね。
実行結果がどのように反応するのかはなんとなくわかりましたけれど、これをいかにうまく使いこなすかとなると、どうやら難しそうな気がしています。
No.1
- 回答日時:
こんにちは
R1C1形式はほとんど使わないのですが、試してみるとセルの行位置が2ずつ加わるような感じになってしまうようですね。
どういう仕組みなのか正確にはわかりませんけれど、R1C1で相対的な位置を参照している場合、セルが一つ下に移動すると、エクセルが招請で式の相対行位置を1小さくしますけれど、設定セル位置もずれているので、結果的に2ずれてしまうということなのかもしれません。
セル範囲に式を設定する場合、このような参照位置の調整が行われてしまうためかと想像します。
(R1C1形式の場合は、式を調整する必要がないのに、調整してしまうということの様です)
個別に式を設定すれば、自動調整は行われませんが、前半でご提示のような複数行になる記述になってしまいますね。(あるいはループで設定するか)
通常のフィルコピーした時と同じ結果をお求めということであれば・・
Range("M11:O15").FormulaLocal = Range("M11:O11").FormulaLocal
とすれば、その様な結果になると思います。
フィルコピーをそのまま記述するなら、
Range("M11:O11").AutoFill Range("M11:O15"), xlFillDefault
でも可能ですが、こちらの場合はコピーなので、式だけでなく書式等もコピーされます。
早速のご回答、ありがとうございます。
>結果的に2ずれてしまう
やはりそうですか、私も2行ずれています。
R1C1形式の復習をしていて遭遇した状態です。
普段はご指摘の通り、私も
>Range("M11:O15").FormulaLocal = Range("M11:O11").FormulaLocal
こちらの方を使用しえいます。
FormulaLocal の「Local」は必要なものですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JSPの処理の途中で、JavaScript...
-
リクエスト結果が一瞬しか表示...
-
innerHTMLなどの反映タイミング
-
alert()が実行できない
-
PowerPointで時計表示
-
列を非表示にするマクロが実行...
-
PowerBuilderのDOUBLEデータ型...
-
Javascriptでのファイル読み込み
-
Vba SelStart、SelLen教えてく...
-
csvファイルを読み込み、該当項...
-
canvasやSVGを学ぶ時機
-
ASP上からサーバサイドのVBScr...
-
PHPができればJavaScriptは...
-
ホームページビルダーを使って...
-
Javascriptエラーの原因が分か...
-
フォルダ内のファイル名を取得...
-
javascriptの参考書
-
「終了していない文字列型の定...
-
JSでファイル数取得
-
PHPでエスケープされた文字列を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JSPの処理の途中で、JavaScript...
-
if(1){...}とはどういうことで...
-
PowerPointで時計表示
-
C#でボタン名を変更しても動く
-
デザイン時のVisible=Falseは実...
-
初心者です。gulpでコンパイル...
-
jQuery ui Datepicker 明日以降...
-
innerHTMLなどの反映タイミング
-
VBA SORT Applyでエラー
-
〔Excel:VBA〕マクロの実行が異...
-
1つのVBAコードをすべてのコア...
-
リクエスト結果が一瞬しか表示...
-
VBA ステータスバー DoEvents
-
VB.netでタイマーがスタートし...
-
javascriptで最初のところに戻...
-
Excelのマクロ一括実行ができな...
-
既存のwebサイトで、ローカルの...
-
JavaScriptでショートカットキ...
-
ラベルの色がかわってくれない
-
eval()の危険性の具体例を教え...
おすすめ情報