質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

4回答

14279閲覧

指定範囲に一気に掛け算する

rvsezuki

総合スコア66

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2018/02/20 09:04

G5からI23に数値が入っています。
ここの範囲に一気に(-2)をかけたいのですが、

Workbooks(fileA).Worksheets(sheet1).Range("G5:I23")*(-2)

としてもダメでした。
セル1つ1つにかけるならforなどの方法は重いつきますが、範囲に一気に
かけるにはどうすればよいでしょうか?

よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ttyp03

2018/02/20 09:42

ループで回すのがダメな理由は?
guest

回答4

0

ベストアンサー

Evaluateを使えばどうでしょうか。

vba

1With Workbooks(fileA).Worksheets(sheet1) 2 .Range("G5:I23").Value = .Evaluate("G5:I23*-2") 3End With

Worksheet.Evaluate メソッド (Excel)

下記のように簡略に記述することもできます。

vba

1With Workbooks(fileA).Worksheets(sheet1) 2 .Range("G5:I23").Value = .[G5:I23*-2] 3End With

また、Forループを使った場合は、

vba

1Dim r As Range 2For Each r In Workbooks(fileA).Worksheets(sheet1).Range("G5:I23") 3 v.Value = v.Value * -2 4Next

投稿2018/02/20 11:32

編集2018/02/20 12:18
hatena19

総合スコア34352

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

貼り付けるときに乗算指定ができるので、それを利用するのはいかがでしょうか。
ただし-2のデータがセル上に必要なので、一時的にワークシートを作成するなどの処理が必要です。

VBA

1Range("L5:N123").Copy ' この領域は-2で埋めてある 2Range("G5:I123").PasteSpecial Operation:=xlMultiply ' 乗算で貼り付け

もしくはクリップボードを操作すればワークシートは不要かもしれません。

投稿2018/02/20 10:08

ttyp03

総合スコア17000

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

計算結果を入力したい複数のRangeオブジェクトのFormulaArrayプロパティに波括弧を使わず数式を代入することで配列数式を使用することが可能です

投稿2018/02/20 09:58

Argent

総合スコア59

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

まず G5:I23 と同じ大きさの範囲を空いたところ(例えば G25:I43)で選択します。
そこに次のように書きます。
=G5:I23*-2
Ctrl+Shift+Enter を押します。

投稿2018/02/20 09:22

Zuishin

総合スコア28673

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問