• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel VBAでのプログラム作成方法)

Excel VBAでのプログラム作成方法

このQ&Aのポイント
  • Excel VBAでのプログラム作成方法を初心者向けに解説します。
  • Excelの表にデータを表示し、ボタンを押すと次のデータが表示されるプログラムの作り方を紹介します。
  • Excel VBAを使用して、表のデータを操作するプログラムの作成方法を詳しく解説します。

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

  • ベストアンサー
  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.2

Aを1、Bを2、Cを3と 初期値を999999と、定数宣言する フォームを作る 作ったフォーム内に以下のコードを作り込む ルーティン開始 レンジ取得用の2次元配列変数(1~3、1~100)とカウンター用変数とボタン状態読み込み用変数とどのボタンだったかを記憶する用変数を宣言する 念のため全宣言変数とカウンター用変数を0クリアする 宣言した2次元配列にA1:C100をセットする 各ボタンに対応したボタン状態読み込み用変数の各々に初期値を入れる FOR分でループを作る カウンターの範囲は1から101 使う変数はカウンター用変数 カウンター用変数の値から100の余数を求め1を足しカウンター用変数に入れる レンジを納めた配列変数の(A,カウンターの変数)の要素の値をテキストボックスのCにセットして表示 レンジを納めた配列変数の(B,カウンターの変数)の要素の値をテキストボックスのDにセットして表示 レンジを納めた配列変数の(C,カウンターの変数)の要素の値をテキストボックスのEにセットして表示 DO文でループ開始 ボタンが押されたか、各々の値を読み込み 各ボタン状態読み込み用変数に納める Loop構文でアンテイルかフォアイルを用いて各ボタンに対応したボタン状態読み込み用変数に変化がないか確認する 変化がなければDO分に戻る 変化していればDOのループを抜ける 変化したボタンを判別し、どのボタンだったかを記憶する用の変数に納める レンジを納めた配列変数の(C,カウンターの変数)の要素に、どのボタンだったかを記憶する用の変数の値を納める シートの("C:"とカウンターの変数の値を文字列に変換し、繋いだもの)で特定されるレンジ域に、どのボタンだったかを記憶する用の変数の値を納める NEXT文でFOR文に戻る ルーティン終了 以上です。 デバッグしていないですし、今一ボタンのことが解ってないのですが、動くと思います。 因みにご指定通り無限ループです。脱出口が欲しければ別途その旨を お申し付け下さい。 てか、日本語プログラミング環境で適切な物があれば このまま動くのでは? ちょっと直接過ぎですかね? 日本語の単語や文でも変数宣言もできるのですが、 変数名を変えたければ自分で変数名を決めて下さいね その際は判読性重視で出来るだけ文字数を少なくして下さいね (※注:判別性ではないですよ、判読性重視ですよ。「何か読むだけで解る」これ重要ですよ!!) 尚、配列要素とか定数を数値で直接記載するのは避けた方が良いですね 同じ1と読めても違う1の場合がありますからね 名前付けしておいてその名で値指定することにより 意味違いを判別しないと 後で泣きます。 からね あとボタンが押されたときの値を0に設定しておけば楽かも? … です お役に立てていたなら幸いです P・s・ VBAで書いた方がなんぼか楽かも… 汗 あと動かなかったらどうしよう…  滝汗 とんちんかんだったら済みません

noname#178429
質問者

お礼

大変遅くなりましたが,懇切丁寧な説明を有り難うございました. 書いてあります内容に沿って,プログラムを作り少し手間取りましたが,一応目的のプログラムができました.本当に有り難うございました.

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

その他の回答 (1)

  • masatsan
  • ベストアンサー率15% (179/1159)
回答No.1

回答が無いようなので。 何をお聞きになりたいのかよくわからないから回答が付かないと思います。 考え方を知りたい?とは? お書きになったやりかたでよいのではないですか?

noname#178429
質問者

お礼

早速のご回答有り難うございました. どうも質問の仕方が問題だったようです.出直します.

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

関連するQ&A

  • VBAでのプログラム

    AccessにてExcelのファイルをインポートしてA,B,C・・・ という複数のテーブルを作成しました。でそのテーブルからA-1,A-2,B-1,B-2・・・というクエリを作成し、それからオートフォームで個別に表示できるフォームをそれぞれ作成しました。 ここからが質問なのですが、上記のファイルをフォームを 作成して検索できるようにしたいと思い、フォームは作成できたのですが、それに対応するアクションのプログラム がわからないのでご存知でしたら教えてください。 まず2つのチェックボックスで*-1,*-2とクエリ、フォームを選択し、コンボボックスでA,B,C・・・を選択して、コマンドボックスでボタンをクリックすると希望どおりのクエリかフォームが表示されるといった具合です。 かなりわかりづらいと思いますが、補足をさせて頂きますのでよろしくお願いします。

  • excel vba 作成方法 

    現在大学2年生です。課題の提出をしたいのですが、excel vbaがよく分かりません。心優しい方、回答をお願いします。 コンボボックスで1945年から2011年の一つを選び、チェックボックスで男か女のどちらかを選び、コマンドボタン「結果」をクリックすると、テキストボックス3つ「年齢」「干支」、(チェックボックスで男か女を選択)「平均寿命はあと何年」の値が入るというプロブラムを作りたいです。 コンボボックスはsheetのA2~A68の値から選択するというところまではできました。テキストボックスの年齢はsheetのC2~C68,干支はD2~D68、チェックボックスで男を選んだ場合はE2~F68,女を選んだ場合はG2~G68が、コマンドボタンを押した瞬間に出るというプログラムは可能でしょうか? パソコンが苦手です。分かりやすく教えていただけたら本当に嬉しいです。よろしくお願いします!!

  • エクセルVBAでコマンドボタンをクリックし、連続入力する方法。

    初めまして。仕事の書類を作っている最中に壁に当たったのでご質問させていただきました。 早速ですが本題に入りたいと思います。 ユーザーフォームを使用してテキストボックスを使い3つのテキストボックスに入力を終えた後にコマンドボタンを押してセルB2,C3,D4に表示するとします。(下図のように) A B C D E 1 2 あ い う 3 4 5 6 このとき、また違う文字をテキストボックスに入力し、登録した場合、 B列,C列,D列の最終行+1にどんどん入力していくというコードは調べてわかったのですが、下図のように上下とも既に文字列が入っていて、この間セル(B3:B6,C3:C6,D3,D6)に上から順にコマンドボタンを押す度どんどん入れていくためのVBAはどうなるのでしょうか? A B C D E F 1 2 s d f d 3 4 5 6 7 f f f f 8 9 10 ちなみにこの場合だと8列目もしくは変なところに飛ぶと思うのですが…。 どうぞよろしくお願い致します。

  • 入力値をListボックスに表示させたい。

    (仕様1) ユーザーフォーム1でテキストボックス1~5に 入力した値をListボックスに表示させたい。 例えば textbox1=A,textbox2=B,textbox3=C・・・ と入力されたら、 A B C D E のように順に横方向一列に表示させるようにしたいです。 (仕様2) これをコマンドボタン1を押す度にリストボックス1に新しく追加されていく 様にしたいのですが、できますでしょうか。 例えば、 A B C D E A C D B E (テキストボックスに入力後ボタン1を押す) A C B D E (テキストボックスに入力後ボタン1を押す)

  • エクセル VBA

    いつも、皆々様にはお世話になり、大変役立たせていただいております。 エクセルのデータについての質問です。 セルごとに A,B,C,D,E...... イ,ロ,ハ,ニ,ホ,ヘ,ト... と並んでいるデータがあるとします。 それをテキストデータとして取り出して、 A B C D E . . イ ロ ハ . . . と 各データを改行して取り出すことは可能でしょうか。 行列の変換ではありません。 各セルのデータをひとつずつ取り出して、 テキストデータとして1行ずつ取り出す方法なのです。 VBAで別のシートに1個ずつデータを移して、 ちまちまやっていれば出来そうなのですが、 一発でやる方法はないでしょうか。 よろしくお願い申し上げます。 なぜこのようなことが必要かと申しますと、 歯科のレセ電のプログラムの一環であります。

  • エクセルVBAで行うVLOOKUPについて

    エクセル2000を使用しています。 いまいろいろVBAを使用してますが、わからないことがあります。 シート1に入力データ、シート2に参照のデータ USERFORM を使用し たとえばテキストBOX1にコードAと入れるとテキストBOX2に東京支店と表示し確認をできるようにしたいのです。東京支店は、シート2の参照データから引用してきます。 BOX1にAと入れてエンターを押した時点でVLOOKUPを実施させたいのですがいまいちわかりません。 シート2は A列にコード A,B,C,D,.... B列に東京支店、千葉支店... よろしくお願いいたします

  • エクセル2003のフォームを作成しています。

    エクセル2003のフォームを作成しています。 2点質問があります。 (1) UserForm1にテキストボックス1と2 マルチページの中にテキストボックス3と4があります。 エクセルのシート名はSheet1です。 一例) マルチページ1 テキストボックス1:A100 テキストボックス2:山田太郎 テキストボックス3: テキストボックス4: マルチページ2 テキストボックス1:A100 テキストボックス2:山田太郎 テキストボックス3: テキストボックス4: マルチページ3 テキストボックス1:A100 テキストボックス2:山田太郎 テキストボックス3: テキストボックス4: マルチページ4 テキストボックス1:A100 テキストボックス2:山田太郎 テキストボックス3: テキストボックス4: マルチページ5 テキストボックス1:A100 テキストボックス2:山田太郎 テキストボックス3: テキストボックス4: エクセルのシート(Sheet1)には A     B    C    D   E A100 山田太郎 木村 5000円 担当1 A100 山田太郎 村田 6000円 担当2 A100 山田太郎 江崎 3000円 担当3 A200 田中花子 吉田 4000円 担当1 A200 田中花子 鈴木 1000円 担当2 とデータが続いています。 UserForm1に読込というボタンがあるのですが、クリックしたらシートの A列でA100、B列で山田太郎、かつE列で「担当1」の行の C列の名前をテキストボックス3、D列の金額をテキストボックス4 に表示させるにはどのように書けば良いのでしょうか。 ページ2は、ボタンではなく、ページをクリックした時に 上記と同様のイベント A列でA100、B列で山田太郎、かつE列で「担当2」の行のC列の名前を テキストボックス3、D列の金額をテキストボックス4に表示、 ページ3は、2と同様ページをクリックした時に A列でA100、B列で山田太郎、かつE列で「担当3」の行の C列の名前をテキストボックス3、D列の金額をテキストボックス4 に表示、 以降のページも上記と同様のことをさせたいと思っています。 マルチページは5ページありますが、必ずしもシートに担当5まで あるわけではなく、A100 山田太郎のように、担当が1から3しか シートにデータがない場合は、マルチページの4と5は空欄に ならなければなりません。 (2)ページのタブをクリックした時のイベントの書き方が分かりません。 ページをクリックした時のイベントは、こちらで同じような質問を されている方のを見て、タブをクリックした時のコードをコピーして みまして試してみましたが、無反応でした。 Private Sub MultiPage1_Click(ByVal Index As Long)  'Page2がクリックされた場合  If Index = 1 Then   Load UserForm1   With UserForm1    .StartUpPosition = 0    .Top = 50    .Left = 20    .Show   End With  End If End Sub 分かりづらい説明で申し訳ありませんが、どなたか教えていただけ ませんでしょうか。よろしくお願いいたします。

  • エクセルVBA及び関数

    初心者です。お教えお願いします エクセル2003です 空白行及び0をなくしたいのですが(C列を入力された時点で自動でE列のようにしたい) 関数の場合及びVBAのシートコードを両方教えていただけないでしょうか VBAのコードは勉強の為です Sheet1    A    B     C     D     E     F 16          文字A        文字A 17          文字B        文字B 18            0         文字C 19          文字C        文字D 20            0         文字E 21          文字D        文字F      22      23          文字E 24 25          文字F 文字はC16~C80まで入っております B16~E80までのセルのみで行いたいのですが 他の場所は関数やグラフ等がすでに入ってますのでいじりたくありません E16~をフォームのコンボボックスのリストにしようと思ってます よろしくお願いましす

  • Excel VBA グラフ作成

    グラフを複数、自動で作成しようと思っています。 データは、 がっつり A  1 B  3 C  5 D  8 E  10 しっとり A  3 B  5 ・ ・ ・ 最初に「しっとり」などのような項目名が記してあり、 その後5行はデータになっています。 Aを選択した人が3人、Bを選択した人が5人などの意味です。 A2からデータが入っており、 グラフを作る個数は決まっておらず、表の個数により作成したいと思っています。 「Sheet1」にグラフを自動で作成するにあたり、 3つ質問があります。 マクロに「SampleGraphという名称で作ってみました。」 ----------------- Sub Sample_Graph() Dim i As Long Dim SampleChart As Shape i = 2 Set SampleChart = Worksheets("Sheet1").Shapes.AddChart With SampleChart.Chart .SetSourceData Range("'Sheet1'" & "A" & i + 1 & ":" & "B" & i + 6) .ChartType = xlColumnClustered .HasTitle = True .ChartTitle.Text = Range("A" & i) End With i = i + 7 End Sub ------------------------------ 質問1 実行すると、Set SampleChart = Worksheets("Sheet1").Shapes.AddChartのところで エラー438が出ます。どうしてこのエラーが出るのでしょうか? フォームにプログラムを書いて組んでいるのですが・・・ (フォームのボタン1をクリックしたら実行するようにしています) 質問2 グラフのサイズを決め、個数によって配置を変えたりしたいです。 Inputboxを使い、 ”何列にしますか?”というメッセージを表示 そして、数値を入力すると 3列でグラフ表示される 質問3 図のように、項目名とは別に 「Yes」「No」などを表示させたいです。 データに含むとおかしくなりますし、 かといってタイトルや系列名を変えることも難しいかと。 何か良い方法はありませんか? 以上、質問3点長々と書かせて頂きました。 分かりにくい点が多々ありますが、よろしくお願い致します。 せめて、グラフを作れるようにはなりたいと思っています!

  • エクセルVBA

    初心者です エクセル2003 ユーザーフォームのコンボボックスの連携について教えてください   Seet1       A     B     C     D      E     F           1   種類1   商品1  商品A  商品あ        コンボ1  2   種類2   商品2  商品B  商品い 3   種類3   商品3  商品C  商品う                4   種類4   商品4  商品D  商品え        コンボ2 5   種類5   商品5  商品E  商品お (1)コンボボックス1と2を別々のユーザーフォームで配置(ダブルクリックにて表示 F1とF4) (2)コンボボックス1でA列の種類を選択によりコンボボックス2のリストが変わる (3)コンボボックス1で選んだ種類をF1のセルに挿入 (4)コンボボックス2は種類1の場合はB列             種類2の場合はC列             種類3の場合はD列のリストとします (5)コンボボックス2で選択した商品をF4に挿入といった具合です 何度か挑戦しましたが、同一ユーザーフォームにコンボボックス2つは成功するのですが うまくいきません コード及びコード記入場所を教えていただけませんか よろしくお願いいたします

TK-FCM090SBKが動かない
このQ&Aのポイント
  • USB接続のTK-FCM090SBKキーボードが動かない
  • パソコンを二台試しましたが、キーボードが反応しません
  • 適当に押すと電卓が起動する
回答を見る

専門家に質問してみよう