- ベストアンサー
エクセルでセル入力とセル出力の自動化
- エクセルでセル入力とセル出力を自動化する方法について教えてください。
- セルA1に数字を入力すると、関数を使ってセルA2に計算結果が表示される方法を教えてください。
- 変数リストにある数値をセルA1に入力して、その結果のセルA2を別のセルに書き出す方法を教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
以下のマクロで自動化できます。 Private Sub CommandButton1_Click() Dim i As Long Dim maxBrow As Long maxBrow = Range("B" & Rows.Count).End(xlUp).Row 'B列の格納最大(連続している場合) For i = 1 To maxBrow Range("A1") = Range("B" & i) Range("C" & i) = Range("A2") Next End Sub 対象シートにCommandButtonを貼り付け、コマンドボタンのClickイベントで処理するマクロです。 B列のリスト値をB1~Bnまで順にA1に代入し、代入した結果(Excelの自動計算結果)をA2から取り出し C列に順に格納しています。 お試しください。
その他の回答 (3)
- snowsan062
- ベストアンサー率42% (21/50)
長くなるなら、数式をセルに分けるってのもありですが マクロでやるなら まず、実際にやってる動作をマクロの記録で記録して その後にチェンジイベントに 出来上がったコードを移せばいくはずです。 チェンジイベントについては 「worksheet_change」で検索して下さい。 これで入力した時、イベントが走ります。 計算方法がその都度変わるのであれば ちゃんと自分でコードを書く必要があります。
お礼
ありがとうございます。
- imogasi
- ベストアンサー率27% (4737/17069)
質問で言っていることが判らない。VBAの経験者には、 常識過ぎて考えられないようなことを聞いているのかも。 A1とB1(B2、B3・・)の関係がよくわからない。 C列のC1、C2,C3・・セルにはA2の式で計算した結果を入れるのでしょう。 その場合 i=1,2,3・・でCellls(i,"C")=数式計算でよいのです。i をForNext などで順次1づつ アップして(行ポインターを下にして) 設定して計算およびセルに結果データをセットします。 普通は計算材料(データ)と結果を入れるセルを同行に置くのです。式はプログラムの中に 組み込まれて隠れる。A列の式の形が各行でバラバラの場合などでは、VBAの初心者がやろうとする タイプではない。難しい。2,3種類なら場合分けで出来るだろう。 B列の値はA列の式に対する場合はメーターで 例えば Cells(i,"C")=Cells(1,"B")^2+Cellls(i,"B")+1のようになる。 この場合数学式で書けば、A1の式が X^2+x+(1)の場合です。 何しろセルの値はデータとして利用し、式の型(数学の関数 F(x)はVBAの式に組み込む) ただそれだけで何を疑問に思って居るかわからない。 判りやすくするならx=Cells(i,"A") y=cells(i,"B") のようにプログラムで置き換えて(x、yを変数宣言してその変数に代入し) VBAで書く式は Cells(i,"C")=x^3+y^3+2のように数学的に書けば仕舞い。 B列のデータの2倍をC列にセットする例を挙げておく 標準モジュールに Sub test01() For i = 1 To 10 Cells(i, "C") = Cells(i, "B") * 2 Next i End Sub
お礼
ありがとうございます。
- keithin
- ベストアンサー率66% (5278/7941)
>マクロを使ったことが一度もなくやり方がわからなく 簡単のためB1からB10に入力値一覧があるとすると sub macro1() dim i for i = 1 to 10 range("A1") = cells(i, "B") cells(i, "C") = range("A2") next i end sub といったマクロになります。
お礼
ありがとうございます。
お礼
ありがとうございます。