VBAについて質問です。すごく簡単なのですが、意外に調べても分からなかったので教えて下さい。


プロシージャで引数とした変数を変化させるにはどうしたら良いでしょう?
以下の例で、3をセルに書き込みたい場合などです。

sub Test(a as Long, b as Long)
a = 1
b = 2
end Sub

sub Main()
Dim maina as Long
Dim mainb as Long
Test maina, mainb
SelectedCell.value = maina + mainb
end Sub

よろしくお願いします。

回答の条件
  • 1人2回まで
  • 登録:2008/11/07 20:23:07
  • 終了:2008/11/07 21:55:20

ベストアンサー

id:SALINGER No.2

SALINGER回答回数3454ベストアンサー獲得回数9692008/11/07 20:47:22

ポイント27pt

VBAのプロシージャは通常参照渡しになるので、やりたいことはあってますが、

SelectedCell→ActiveCell

と変えてみてください。

id:ReoReo7

了解しました。

2008/11/07 21:50:40

その他の回答(2件)

id:pahoo No.1

pahoo回答回数5960ベストアンサー獲得回数6332008/11/07 20:47:18

ポイント27pt

VBAというのは ExcelVBA のことですね。

でしたら、たとえば [Sheet1] の C5 セルに maina + mainb を代入したいのであれば

Sheets("Sheet1").Select
Range("C5").Select
ActiveCell.Value = maina + mainb

のように書きます。

id:ReoReo7

ありがとうございます!

2008/11/07 21:50:33
id:SALINGER No.2

SALINGER回答回数3454ベストアンサー獲得回数9692008/11/07 20:47:22ここでベストアンサー

ポイント27pt

VBAのプロシージャは通常参照渡しになるので、やりたいことはあってますが、

SelectedCell→ActiveCell

と変えてみてください。

id:ReoReo7

了解しました。

2008/11/07 21:50:40
id:taknt No.3

きゃづみぃ回答回数13537ベストアンサー獲得回数11982008/11/07 20:52:54

ポイント26pt

SelectedCell.value = maina + mainb

ではなくて

ActiveCell.Value = maina + mainb

にしたらいいでしょう。

id:ReoReo7

おかげでうまくできました。

2008/11/07 21:50:48

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません