• ベストアンサー

VBA Rangeの足し算

どもども、とってもVBA初心者です。 "A1"のセルに任意の数字をいれます. ・"B2"セルより"A1"に代入された数分、列を移動させたセルを選ぶマクロ ・"B2"セルより"A1"に代入された数分、行を移動させたセルを選ぶマクロ 本読んでもでてこないくらい初歩のようです。 よろしくお願いします。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 >本読んでもでてこないくらい初歩のようです。 ちゃんと読めば出てきます。英会話と同じで、決まりきったことなら言えても、少し変化するとなかなか難しいものなのです。それは、まだ、VBAの知識が少ないからなのです。初心者としては、あれをしたい、これをしたい、というのは、もう少し我慢すべきだと思います。早めに白旗を上げて、他人に頼らないことですね。段階を踏んで、一通り覚えてから、実際のコードを書いてください。 私自身も、本格的に、新しい言語を始めたばかりの初心者で、何年掛かるか分かりません。でも、勉強の仕方はだいたい分かるつもりです。 ちなみに、一般的な方法だけ書いておきます。 入門用では、どちらかというと、Cellsプロパティを使うことが多いかと思います。しかし、少し、今回のような相対参照型の場合は、Cellsプロパティは分かりにくいです。 '列 Dim i As Long   If IsNumeric(Range("A1").Value) Then   i = Range("A1").Value   Range("B2").Offset(, i).Select  End If '行 Dim j As Long  If IsNumeric(Range("A1").Value) Then   j = Range("A1").Value   Range("B2").Offset(j).Select  End If

mogurayama
質問者

お礼

なるほど、奥が深いですね。 仕事柄、日夜の努力やガマンもしてられなく 他人に頼りたいからこのサイトを利用した次第です。 また、ご質問させてくださいねヽ(^‐^ )/

その他の回答 (1)

回答No.1

Range("B2").Select ActiveCell.Offset(0,range("A1").Value).Select Range("B2").Select ActiveCell.Offset(range("A1").Value,0).Select でどうでしょうか?

mogurayama
質問者

お礼

なるほど、ありがとうございます。 Offsetをつかうのですね。 助かりました!!

関連するQ&A

  • エクセル関数、またはVBA

    どなたか教えてください。 B列に半角数字か空セルがあります。 A列にB列の一定の行数(下記だと4行)の数字の和があります。 ---------- A B C 3 1     1     1         4 0     1     3     0   3 0           2     1   ---------- これを以下のようにA列の数字を対応する4行中のB列がゼロでも空セルでもない行に移動させたいのです。 ---------- A B C 3 1     1     1           0   4 1     3     0     0         3 2     1   ---------- 実は経理の帳簿の貸借なのですが、関数かマクロでできないでしょうか? 自分なりに考えてみたのですが、頭がパンクしました・・・ どうかお助け下さい。

  • "VBAの繰り返し"についてお尋ねします。VBA初心者です。

    "VBAの繰り返し"についてお尋ねします。VBA初心者です。 例えば「A列の最後のセルに何か入れば、その行のB列、C列・・・の一つ上のセルに入っている計算式を繰り返しコピーする」と言うコードを教えていただけたらと思います。A列の最後のセルに何か入ってくれば、その行の一つ上のセルに入っている計算式を繰り返しコピーするというコードです。コード記述の例を教えていただけたらと思います。よろしくお願いします。

  • エクセルVBA でセルの結合

    久しぶりに質問したいことがあります。 初歩的なVBA操作しかできない者です。 以下のようなマクロを組みたいのですがどのようにしたらよいでしょうか?      A       B         C 1   東京 2   東京 3   京都 4   京都 5   京都 6   埼玉 7   埼玉 ・   ・ ・   ・ ・   ・ 上の状態から下のようにしたい     A        B        C   -------- 1    東京 2   --------  3 4  京都 5    -------- 6    埼玉 7   -------- ・   ・ ・   ・ ・   ・ (最終行は任意) B列で同じ項目名のセルを結合したいです。 B列は名前順に並び替えられていて、1~10行ぐらいで同じ項目名があり行数は共に任意です。 なおイメージ図の「------」はセル結合のイメージですので、実際には 実践で囲います。 分かりづらし説明で申し訳ありませんがよろしくお願いします。

  • エクセル マクロ 足し算

    いつもお世話になります。マクロ勉強中の初心者です。 マクロの足し算を教えてください。 A列  B列  C列 ・・・・  1   2    3  4   5    6  7   8    9 という数字のデータがあります。 これらのA列の合計、B列の合計・・・など列の合計を出すマクロはわかるのですが、  作成したVBA    Range("a4") = Application.WorksheetFunction.Sum(Range("a1:a3")) A列の合計(A1~A3)とB列の合計(B1~B3)とC列(C1~C3)の合計を、D4に合計させる方法を 教えてください。 どうぞよろしくお願いします。

  • VBA 行の削除

    全くの初心者で、初めて質問させていただきます。 A列には、数字・空白・文字を入力したセルが混在しています。 そのA列の数字の内 0 のセルが入力されている行のみを削除するVBAの記述の仕方を教えて下さい。 宜しく御願い致します。

  • VBAでやりたいこと質問します!

    こんにちわ。VBAを知って数週間の初心者です。インターネットで質問し回答をコピーして使用したりしています。 使っているうちに、ここはあーしたいあそこはこーしたいとやりたいことが増えてきてしまいました。 ご覧の皆様、良きご回答をお願いします<m(__)m> やりたいことはB列に数字を入力、C列にB列に入力した数字の累計(例.B5の累計はC5、B6の累計はC6、B7の累計はC7・・・)を表示、B列の任意のセルの入力履歴をI列の任意のセルに1回ずつ縦(例.B11の履歴を1回ずつI5、I6、I7、・・・)に表示する。 B12の入力履歴はJ列に1回ずつ縦(J5、J6、J7、・・・)に表示する。 同じようにB13の入力履歴をK列(K5、K6、K7、・・・)に表示する。 それを繰り返しB14はL列にB15はM列、B16はN列に縦に1回ずつ履歴を表示する。 B列の各セルに数字を入力したとき、Enterを2回押すと入力するセルが移動する。 Enter1回のときは、同じセルに続けて数字が入力できる。 B列の各セルに入力した数字は、C列に設けたクリアボタンでクリアすると直前の入力がクリアできる。 D列にはオールクリアボタンを設け、セルの値をオールクリアする。 電卓の「C」、「AC」ボタンの様に使いたいです。 以上、思いつくままに綴ってしまいました。 初心者が、わがままいって本当にすいません<m(__)m> 本やインターネットで、勉強しているつもりですがいつになったら組めるのか予想もつきません((+_+)) よろしくお願いします・・・・追伸、インターネットのVBAに関する質問にすばらしい回答をされている方々はVBAを仕事で使ってみえるのでしょうか?又は 個人的に勉強されているのでしょうか? どうすれば、あのすばらしいアンサーの方々に近ずけるのでしょうか・・・

  • EXCELでの足し算

    A列に数字が入っていてB列に=A1/2という式を入れています。 それが20行まであり、B21のセルに=SUM(B1:B20)という式を入れています。 A列の数字が例えば105と言う数字がどこかにはいっているとするとB列は52.5ですが四捨五入されているのか53となっています。 B1からB20は四捨五入されていいのですが B21に足された数字もB1からB20の表示どおり四捨五入されたものを足してほしいのですが 52.5を足したようになってしまいます。 どうしたらよいでしょうか? どなたか教えてください。 Excelは2000です。

  • VBA:各ページの先頭セルを選択するコマンドを教えてください

    VBA:各ページの先頭セルを選択するコマンドを教えてください --Page 1------ A列 | B列 1 | 4 2 | 5 3 | 6 --Page 2------ 7 | 11 8 | 12 9 | 13 10 | 14 --Page 3------ ... 元は印刷用に作ったこのような表があります。A列だけにして、数字順にずらっと並べ替えたいと思っています。 各ページの行数はバラバラで、規則性がありません。実際に入力されているデータは連番ではなく任意の文字列(ページごとにタイトルなどもなく規則性もありません)です。 作ろうとしているマクロは、各ページの末尾にそのページで使われている行数分だけ行挿入→そのページのB列をカット&ペーストでA列のお尻に付けるというものです。 各ページの先頭セル/末尾セルを指定するコマンドがわかれば実現できると思うのですが調べても見つけられませんでした。 (ページ関連となると印刷系ばかりで、、) 恐れ入りますが、お教えいただけますでしょうか。

  • VBAマクロ作成について

      A  B  C -------------- 1 ○○ 123 456 --------------- 2 □□ 789 123 --------------- 3 △△ 456 789 -------------- 上記のような表でInputBoxを使い「○○」と入力すると同じ行のB列「123」とC列「456」 「□□」なら「789」「123」のように値を取得し、変数に代入するような マクロを作成したいのですが、どのように記述すれば良いでしょうか。 初歩的な質問ですが、宜しくお願いいたします。

  • エクセルVBAについて

    VBAに関しての質問です。 A列に日付(10行目から) B列にその日の売上が 300行(300日分)入力されてる表があるとします。 C列にその日を含めた過去N日間の最大の売上を表示させたいのです。 例えば 過去5日間なら過去5日間の最大売上げを毎日表示させたいのです 当然この場合は5日間なのでCの13行目までは空白になります。 「N」日はA1セルに任意の日数で入力することによって希望の期間の数値 が表示できるようにしたいのです。 関数を使ってできるのいですが、事情がありましてエクセルのマクロの 繰り返しのプログラムでやりたいのですが VBAに関しては全く素人ですの。どなたかご教授願えませんでしょうか よろしくお願いします。

専門家に質問してみよう