• 締切済み

エクセルVBAについて

エクセルのVBAで質問があります。 A1からE20の範囲に、1~100の数字を表示させたいのです。 そして、その数字の並び方を左から右方向に1、2・・・(A1に1、B1に2)という風に順番に表示させたいのですが、 変数を用いてどのようにコードを入力していけばいいのかが分かりません。 最近勉強を始めようと思った全くの初心者なので、 分かりやすくご教授いただければ助かります。 よろしくお願いいたします。

みんなの回答

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.3

For i = 0 To 99 Cells(i \ 5 + 1, i Mod 5 + 1) = i + 1 Next とか、 For r = 1 To 20 For c = 1 To 5 Cells(r, c) = 5 * (r - 1) + c Next Next とか。

全文を見る
すると、全ての回答が全文表示されます。
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

行と列の番号と、目的の番号(など)とをどのように(一意に)関連付けできるかということなので、コードというより考え方の問題です。 方法はたくさんあると思いますが、以下一例です。 (No1様の回答のfor文をネスト(入れ子に)するほうが、一般的かも) Sub test() Dim c As Range For Each c In Range("A1:E20") c.Value = (c.Row - 1) * 5 + c.Column Next c End Sub

全文を見る
すると、全ての回答が全文表示されます。
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

FOR文の勉強をしてください。 http://msft.ems.okayama-u.ac.jp/vba/chapter2.htm#02-3

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルVBA

    A1からE20までの範囲に数字が表示されています。 そしてその表の行ごとの数値の合計をG列に算出して表示させたいのですが どのようにすれば良いのでしょうか。 VBA初心者なので、分かりやすく教えていただけると助かります。 よろしくお願いいたします。

  • エクセルのVBAに関しての質問です。

    エクセルのVBAに関しての質問です。 あるセルに入力された数字の行から行までを非表示にしたいのです。 例えば、A1に15、B1に30という数字が入っていれば、行15から30を非表示する、という感じです。 よろしくお願いします。

  • エクセルのマクロ(VBA)について質問です。

    お世話になります。 エクセルのマクロ(VBA)について質問があります。 下記、わかりにくいと存じますが、お力添え下さい。 ある表があります。 項目としてA列「名前」B列「連絡先」C列「順番」とんでE列に 「乱数」があります。 2行目にこれら項目名が並んでおり、3行目から34行目までは データ入力範囲になります(32名入力出来る。1行目は表のタイトルです) 入力したデータを順不同に並べたく、「順番」項目は乱数を用いた数字を入力させます。 ここから、マクロの登録をします。 ~↓登録中↓~ ・「乱数」項目の1番上(E3)から一番下(E34)までドラッグ  (範囲指定)し、右クリック→コピー ・「順番」項目の一番上(C3)で右クリック→”形式を選択して貼り付け” ”値”にチェックを付けて「OK」 ☆「順番」項目の一番上(C3)から「名前」項目の一番下(A34)まで ドラッグ(範囲指定)し、”昇順で並べ替え”ボタンを押す ~ここまで~ (乱数は、毎回変化してしまうのを防ぐ為、別項目から引っ張ってきて 値だけをコピーするようにしています) このようにマクロを登録しました。 しかし、毎回32名を入力するわけではなく、時には32名未満の入力をする場合があります。 別のセルF40に、COUNTA関数より取った「名前」項目に登録されている数を表示させているのですが、 ☆部分の処理にてこの数だけ範囲指定して並べ替えたいのです。 (セルC3から登録されている人数分だけ範囲指定したい、ということです。20名だけ登録されていれば、 セルC3からセルA22を範囲指定する。指定した部分だけを並べ替える) 32名未満の時、乱数に元づく順番で並べ替える際、データの入って いない行も順番に並んでしまうのですが、空白の行はそのままにし、 データの入っている行だけを上(セルA3)から詰めて並べたいのです。 VBAの編集で、COUNTA関数の結果の数字を変数に代入して使用したいのですが、 そのやり方がわかりません。 どなたかお知恵をくださいますよう、お願い致します。 (わかりにくい記述なので、必要に応じて補足させて頂きます。)

  • エクセルVBAでの変数のスコープ

    基本的なことなのですが、教えて下さい。 当方、PHPやjavascriptを中心にプログラムしてきたのですが、 今回、エクセル+VBAでプログラムすることになり、VBAを勉強しているところなのですが、ちょっと戸惑っています。 いままでは、グローバル変数をなるべく使わないように、プログラミングをしてきたのですが、 VBAの勉強で、参考にしている本のコードは、全てグローバル変数を使っています。 そもそも、エクセルのシート・セルがグローバル変数のようなもの(?)なので、変数のスコープにこだわってもあまり意味がないのかな?とも思います。 エクセル+VBAである程度の規模のプログラムを作る際、 変数のスコープはどのように使い分けるのが良いのでしょうか? すみませんが、ご教授の程、よろしくお願いします。

  • エクセルVBA:インデンテーションの仕方

    エクセルVBAで、マクロ コードを書くとき ある一連の塊をインデンテーションするため右へずらすのはTABきーをつかえばできると思うんですが、右へ行き過ぎたのを左へ戻す方法はどうするのでしょうか。よろしくお願いします。

  • エクセルのVBAで悩んでいます。

    いつもありがとうございます。 エクセルのVBAで悩んでいます。 セルの範囲指定をVBAで行いたいのです。 ただし、引数に数値変数を使用する為、Cellsプロパティを使います。 すると、離れている範囲の範囲指定が出来ないのです。 例えば、Rangeプロパティだと、 Range("A5:E5,A9:E32").Select こうなるところを、 A9:E32 を変数に置き換えたくて、 Range("A5:E5", Cells(g, 1), Cells(h, 5)).Select と、するとエラーが出ます。 VBAの前文は次の通りです。 Private Sub CommandButton1_Click() a = Me.TextBox1.Value b = Me.TextBox2.Value Set c = Range("a:a").Find(what:=a, LookIn:=xlValues, lookat:=xlWhole) Set d = Range("a:a").Find(what:=b, LookIn:=xlValues, lookat:=xlWhole) 'MsgBox c + d e = c.Address 'MsgBox e f = d.Address 'MsgBox f g = Range(e).Row MsgBox g h = Range(f).Row MsgBox h Range(Cells(g, 1), Cells(h, 5)).Select End sub よろしくお願い致します。

  • エクセルVBAで連続しない数字を抽出できますか?

    エクセル2002使用です。 VBAでセルに連番が入力された複数のセルに不連続となったセル番地をとりたいのですが・・・・        A B C D E F 1行目  1 2 3 4 8 12 2行目  4 5 7 8 9 5  左端から必ず右方向へ連続した番号が、入力されますが、途中でその連続性が途絶えます。 1行目の場合はE1セル、2行目はF2セルです。このE1セルやF2セルのセル番地を見つけ出せるようにしたいのですが・・・ 数字は1から始まるとは限りません。 IFステートメントで「不連続ならば・・・」とすればいいと思うのですが、「不連続ならば・・・」の部分で困っています。 よろしくお願いします。

  • Excel VBA Cells 絶対参照 書き方

    Excel VBAにてお尋ねいたします。 Excel VBAにてCellsを使用してセル範囲を指定させていただく際に、絶対参照($A$1:$E$10など)を使用する場合はどのように記述すればよろしいでしょうか? Cellsを使用するのは、セル範囲が毎回異なるため、範囲指定に変数を使用しているためです。 相対参照でしたら、Range(Cells(1,1),Cells(Rows<行番号の変数>,Cols<列番号の変数>))といった記述かと思いますが、絶対参照の場合はどのように記述すればよろしいでしょうか?

  • excel VBA

    excel VBA 下記のようなwwwww.xlsの形の文字列xで、 xは英字 数字_数字 英字.klsの形式で_はひとつだけ xの処理で 質問1 文字変数Xを処理して変数yを求めるマクロコードのヒントを     (つまり.xlsを除き、続いて文字や_を取り去る) 質問2 文字変数Xを処理して変数zを求めるマクロコードのヒントを     (つまり文字のみを取り去る) (例)x=FILE20041211_1212system.xls    y=FILEsystem    z=20041211_1212.xls   

  • Excel VBAでの置換の方法について

    Excelの各シートのA5:A104の列に文字列で「●着/●頭」というデータが入力されています。●は半角の1~2桁の数字になります。 例えば、 A5「5着/10頭」 A6「3着/12頭」 A7「6着/7頭」 といった文字列です。これを置換を使って「着」と「頭」を消して A5「5/10」 A6「3/12」 A7「6/7」 と表示されるようにしたいのですが、VBAで良いコードがありますでしょうか。シートは16ページあり、シート名は数字の1~16です。

scansnap ix1600でのページ結合
このQ&Aのポイント
  • scansnap ix1600でスキャンした原稿を見開きページにする方法が分からない
  • スキャンスナップの編集タブのページ結合ボタンが透明で押せない
  • 質問内容はScanSnap/fiシリーズ/HHKB商品について
回答を見る