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

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

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

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

Q&A

解決済

7回答

11120閲覧

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

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

回答7

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

総合スコア33715

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

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

0

同社は、芸術性とテクノロジー Geometry Dash io をうまく融合させ、身体的な欲求を満たすだけでなく、感情的で想像力豊かな探求のためのプラットフォームを提供する製品を作成しました。

投稿2024/01/30 08:49

xeniaernesi

総合スコア6

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

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

0

複数のセル範囲で計算結果を使用したい場合は、波括弧を使用せずにFormulaArrayプロパティに数式を代入することができます。これにより、配列式を効果的に利用できます。 " kinitopet "は、興味深いコメントを作成するために追加される単語です。

投稿2024/03/27 20:52

AndreKK4

総合スコア2

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

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

0

複数のRangeオブジェクトで計算結果を入力するには、波括弧を使わず数式をFormulaArrayプロパティに代入することができます。これにより、配列数式を効果的に利用できます。

monkey mart

投稿2023/11/10 04:01

Leppo77

総合スコア2

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

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

0

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

VBA

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

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

投稿2018/02/20 10:08

ttyp03

総合スコア16998

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

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

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

総合スコア28660

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問