こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excel 簡潔

Sub 問10率()
Range("AY994").Select
ActiveCell.FormulaR1C1 = "=RC[-49]/R1007C[-49]"
Range("AY994").Select
Selection.AutoFill Destination:=Range("AY994:CT994"), Type:=xlFillDefault
Range("AY994:CT994").Select
Selection.AutoFill Destination:=Range("AY994:CT1007"), Type:=xlFillDefault
Range("AY994:CT1007").Select
Range("AY1011").Select
ActiveCell.FormulaR1C1 = "=RC[-49]/R1020C[-49]"
Range("AY1011").Select
Selection.AutoFill Destination:=Range("AY1011:CT1011"), Type:=xlFillDefault
Range("AY1011:CT1011").Select
Selection.AutoFill Destination:=Range("AY1011:CT1020"), Type:=xlFillDefault
Range("AY1011:CT1020").Select
End Sub
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
     A     B    中略   AV     AW
993行  ラベル  北海    ~    沖     合計
994行  魚    21    ~    9    110
中略 
1006行  他    60    ~    空欄    200
1007行  合計   11    ~    148   590
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
     AX    AY    中略    CS     CT
993行  ラベル  北海    ~     沖     合計
994行  魚    0.2%   ~     0.0%    0.2%
中略 
1006行  他    0.3%   ~     0.0%    0.3%
1007行  合計   100.0%  ~    100.0%   100.0%
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
    AX    AY     中略   CS      CT
993行 ラベル  北海     ~    沖      合計
994行 魚    B994/B$1007 ~ AV994/AV$1007   AW994/AW$1007
中略 
1006行 他   B1006/B$1007 ~ AV1006/AV$1007  AW1006/AW$1007
1007行 合計  B1007/B$1007 ~ AV1007/AV$1007  AW1007/AW$1007
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
このコードをもっと短くする方法を教えてください。よろしくお願いします。

1個目と2個目の表は横につながっています。3個目は2個目の表の%を出した計算です。
値でなく式が入っています。空白のところは0.0%と表します。
3個目は実際はありません。

投稿日時 - 2016-10-27 17:28:46

QNo.9248324

困ってます

質問者が選んだベストアンサー

Sub 問10率_整理()

Range("AY994:CT1007").FormulaR1C1 = "=RC[-49]/R1007C[-49]"
Range("AY1011:CT1020").FormulaR1C1 = "=RC[-49]/R1020C[-49]"

End Sub

投稿日時 - 2016-10-27 17:53:40

お礼

ありがとうございます。
2行になるんですね。

投稿日時 - 2016-10-28 09:48:06

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

 セルの書式設定の表示形式が最初は[標準]となっていたものを0.0%表示に変更する事も同時に行う場合には、次の様になります。

Sub 問10率_整理改()

With Range("AY994:CT1007")
.FormulaR1C1 = "=RC[-49]/R1007C[-49]"
.NumberFormatLocal = "0.0%"
End With
With Range("AY1011:CT1020")
.FormulaR1C1 = "=RC[-49]/R1020C[-49]"
.NumberFormatLocal = "0.0%"
End With

End Sub


或は


Sub 問10率_整理改2()

Range("AY994:CT1007").FormulaR1C1 = "=RC[-49]/R1007C[-49]"
Range("AY1011:CT1020").FormulaR1C1 = "=RC[-49]/R1020C[-49]"
Range("AY994:CT1007,AY1011:CT1020").NumberFormatLocal = "0.0%"

End Sub

投稿日時 - 2016-10-27 18:11:07

お礼

ありがとうございます。
Rangeを使わずセルを指定できるマクロを組めるよう考えます。

投稿日時 - 2016-10-28 09:50:15

あなたにオススメの質問