• ベストアンサー

Excel VBAの入門に良い物

ExcelのVBAを使用し、 あるセルに文字を入力しその隣のボタンを押したら、入力欄の文字が消えて用意しておいた表に上から順番に入力した文字が追加される、というようなものを作成しようと考えているのですが、素人には出来るわけもなく、入門書や入門者にいいサイトなどを探しています。 もしやってくださる方がいれば良いのですが、大変だと思うので、ExcelのVBAの入門に良いものがあれば教えていただきたいです。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

#3です。 #3の文章解説の少し先のVBAのコードを書いてみます。 #3で書いたのと同じく、仕掛けはユーザーフォームにテキストボックスとコマンドボタンを設けます。 そのコマンドボタンのクリックイベントに (イベントプロシージュアーです) Private Sub CommandButton1_Click() If UserForm1.TextBox1.Text = "end" Then UserForm1.Hide Exit Sub Else ActiveCell = UserForm1.TextBox1.Text UserForm1.TextBox1.Text = "" ActiveCell.Offset(1, 0).Select UserForm1.TextBox1.SetFocus End If End Sub を作ります。 シートのA1を選択しておきます。 VBE画面のメニューのユーザーフォームの実行をクリック。 テキストボックスにデータを手入力して(例ああ)、マウスでボタンをクリックする。 A1セルに「ああ」とセットされ、セル選択はA2に行きます。 テキストボックスはクリアされる。 次にテキストボックスにデータを入力して(例いい)、マウスでボタンをクリックする。 A2セルには「いい」と入力され、セル選択はA3に移る。 以下繰り返し。 終わるときは「end」(半角)と入力してコマンドボタンをクリック。 #3で説明できなかったことも、出てきてしまっています。それほど、学び初めは難しいです。 これでも、こうしたい、ああしたいということは噴出するでしょう。 プログラムを組むことは、人により、適性があると思うので、向かないと思えば深入りしないで、他のことでエキスパートを目指せばよいと思う。 他人に使ってもらうには、さらにいろいろな仕掛けや考慮が必要で、複雑です。当面はそういう気を起こさない方がよいと思う。

lapis0311
質問者

お礼

回答ありがとうございます! まさか書いていただける方がいるとは思っていませんでしたw 書籍なども参考にさせていただきますが、まず記載していただいたものを試させていただこうと思います^^ 頑張ってみます!

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.5

#3のお礼の続き。 >マクロ有効ブックとして上書き保存をしておけば消えることは無いのですか? マクロVBAコードはそのブックとともに保存されます。 この部分をふくめて、VBE(VBAコードのエディター)のことや、VBAの形式なことは、新書版の「VBAやマクロの解説書」(約250ページ)を購入して、手元に置くこと。 この種の本は、VBAで、エクセルの課題のプログラムを作る分野(この分野では詳しいものは約900ページ)とは、違うものです。しかしまず学ぶためには、最低限必要なものです。

lapis0311
質問者

お礼

回答ありがとうございます! 保存されるんですね^^良かったです あとは...自力で頑張ってみます!

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

>あるセルに文字を入力しその・・ エクセルシートのセルを、こういう目的で使うのは、珍奇ではないかな。 ユーザーフォームというものがあって、VBAの利用を前提にした、仕掛けだと思いますが、下記のような方法が使われる。 ユーザーフォームを挿入する。 その中に、テキストボックスを1つ コマンドボタンを1つ 設けます(挿入という)。 そしてテキストボックスにデータ(情報)を手入力します。 1個のデータを入力し終わったことをシステムに知らせるために、コマンドボタンをクリックする。 あと、毎回のデータをセットするセルを1つ下に、づらしていかなければならないが、プログラムで細工(コントロール)する。 あとデータの入力が終わったことを、システムを知らせるために、 ・もう一つボタンを増やしておくか、 ・終わる、を知らせる入力内容を決めておいて、その入力を探知する。 など、行われる。 上記を見ればわかるが、初心者に文章で説明するのは、大変面倒です。だからそこまで説明している市販本はないと思う。 先生役がおれば、その人が口頭でおぎなって説明するもの。だから先生役が必要だが、尋ねる先輩や友も普通はいない場合が多い。これが難点です。 ここに出てくるVBA関連の術語を、WEBで照会して、コード実例をコピペして、実行してみて、うまく行かない場合は、原因を推定することの、繰り返ししかないと思う。 ーー 1000円以下(250ページ数あたり)の、マクロやVBAの書名が入ったの本を1冊買ってきて、1章づつ読んで、コードをタイプ打ちして(書物なのでコピペできないが、中には説明例のコードをWEBで別途ダウンロードできるものもあるかも)、実行してみるほかない。 ーー 勉強のための参考 本件のVBA関連の術語(下記の検索で出た記事は数記事に絞り、印刷してじっくり読むことをお勧めする) ユーザーフォーム テキストボックス コッマンドボタン クリックイベント ユーザーフォームのコントロール(部品とも言われる) VBAで1行下を指す(WEBで「vba 一行下を選択」で照会) ーー こういう設計に当たることも、経験を、積まず、少ない知識で次ぐとりかかると 、コードもむつかしい方法に行ってしまう。 例えば本件質問の方向のやり方の、シートのセルのChangeイベントというものを使う方法も、不可能ではないが、全体的にむつかしくなると思う。

lapis0311
質問者

お礼

回答ありがとうございました!

lapis0311
質問者

補足

教えていただいたとおり作成してみてうまく行ったので、応用して作成してみました\(^o^)/ そこで質問なのですが、 ・作ったプログラムが消えてしまわないようにするにはどうすればいいのでしょうか?マクロ有効ブックとして上書き保存をしておけば消えることは無いのですか? ・作ったプログラムはマクロみたいなものとしてショートカットキーなどでユーザーフォームのウィンドウ(今回の場合)を開くことは出来るのでしょうか?出来るとしたらどうやって登録すれば良いのですか? 何度も申し訳ありませんが、もしわかりましたら教えていただきたいです。

回答No.2

言葉に他意は無いのでご容赦くださいませ。 エクセルのVBAを学習なさりたいという事で・・ ひとまず、情報サイトなどで端を噛んでみると良いと思います。 例えば有名どころではmoug(http://www.moug.net/)などが挙げられます。 その他「VBA 入門」でweb検索してみるとワンサカ出てきます。 この辺りで概要を抑えて、ご自身で学習を続けられそうなら 書籍を1冊購入、読破してみると良いかもしれません。  ※その際は、実際にキーボードとマウスを操作しつつ読みましょう。 > 素人には出来るわけもなく そんなことも全く無かったりします(笑)。 お望みの作業程度であれば、小一時間も学習すれば きっと作れるようになりますよ。

lapis0311
質問者

お礼

回答ありがとうございます! mougというサイトについてですが、とても良さそうなサイトだなと思いました^^ 是非参考にさせていただきます。 本も色々探してみようと思いますが、やはりパソコン系のものは触りながら読むのが一番なんですね(^o^) そして今やりたい作業がサクッと出来るくらいの能力が身につくように頑張ります!!

  • Chiquilin
  • ベストアンサー率30% (94/306)
回答No.1

ひとまず何でもいいので初心者用の書籍を1冊買うなりして端から 端まで書かれていることを全部 試してみることをお勧めします。 本屋で自分に合いそうなものを探した方がいいんじゃないですかね。 人の勧めたものが自分に合うとは限りませんし。 やろうとしていることくらいなら どの本でもできるようになると思 います。大村あつしさんの書籍なんていいんじゃないでしょうか。 https://www.amazon.co.jp/dp/4774170038 https://www.amazon.co.jp/dp/4774170046 好みは分かれますけど。 個人的には自分の関わった書籍をお勧めします。 https://www.amazon.co.jp/dp/4797386800 タツさんの説明はとても分かり易いですし 関数も一緒に勉強できて お得かと思います。 > あるセルに文字を入力しその隣のボタンを押したら 多分ですけど UserFormを勉強なさった方が 結果的には近道になる ような気がします。

lapis0311
質問者

お礼

回答ありがとうございます! いろいろな書籍の種類をありがとうございますm(_ _)m でも、たしかに自分にあうものはわからないので、まずは勧めて頂いたものから探してみようと思います^^ そして、Userformですか?書籍などと一緒にいろいろ調べて勉強してみようとおもいます。

関連するQ&A

  • エクセルのVBAで教えてください

    エクセルのVBAで教えてください、セルA1の値をマクロボタンを押すたびに、セルC1から順番にC2・C3・C4・・・・と下に自動的に入力するVBAを教えてください。

  • エクセルVBAについて教えてください

    エクセルVBAを勉強中のものです。 仕事でVBAが必要になり勉強しながら作成をしています。 作成したいのはシフト表になるのですが、1年分をまとめて作成するため、最初に一旦空白セルに、ある一定の規則性を持った文字を入力したいのです。 その規則というのが ・入力する文字はA、B、C、Dの4種のうちどれかである ・同じ文字が入力されたセルが5つ続いたのちは、次の文字に移る(A、A、A、A、A、B、B、B、B…というように) ・夏季休業等、×の付いた部分は入力しない というものです。 なおかつ、前年度のデータからの引き継ぎで作成するため、スタートがバラバラです。(添付の画像通り) 休暇の列は5連勤した後1休、という規則です。 VBAと関数を併用するのでも構いません。 関数のみでできるのなら、それでも構いません。 初心者の私にぜひ教えていただけないでしょうか…。 よろしくお願いします。

  • エクセルVBAでセル選択

    エクセル2000でリストを作成し、VBAで編集しようとしています。 A列に入力されているコードの先頭に「’」をつけて文字列とするための関数をB2のセルからA列のデータが入力されている最後のセルの隣までコピーしたいと思っています。 A列の最終セルを取得するVBAは分かったのですが、その値をB列の選択範囲として使用する方法がわかりません。 エクセルVBAは全くの初心者です。 どなたか教えてください!

  • エクセルvba初心者です・・・

    エクセルvba初心者です・・・ シート1にあるひとつのセルをコマンドボタンを押した時にそのセル内の文字列をシート2にかいていくようなプログラムをつくりたいです。 例えば シート1のセルに文字入力→”田中”→登録ボタンおす→シート2のセルA1にはいる シート1のセルに文字入力→”竹山”→登録ボタンおす→シート2のセルA2にはいる                  ・                  ・                  ・ というようになるコードわかる方いたら教えてください。おねがいします。

  • エクセル VBA

    最終行から順番に下へ同列で入力するVBAを教えて下さい。 EXCELのVBAで教えて下さい。 シート1のA列にはB列が入力されると自動入力されるNo.があり、C~G列もB列が入力されると自動入力されます。 B列には日付が、H列には3~4桁の数字が入力したいのですが、 入力行は必ず最下行のセルB、Gな為、VBAでフォームを作成し、 入力実行ボタンを押すことにより、最下行のセルB、Gに反映されるように したいです。 又、上記入力後に、シート2のH~N列をコピーして、シート3のA~G列に値のみの貼り付けを行い保存した後、シート3のA~G列をコピーして csvファイルを作成して保存したいです。 一連の流れを、フォームの入力実行ボタンを押すことで実行したいのですができるのでしょうか? 宜しく御願い致します。

  • VBAのマクロについての質問です

    VBAのマクロについての質問です セルA1:タイトル1 セルA2:タイトル2 セルA3:タイトル3 上記のように各セルに文字を入力しボタンを押下します。 そうすると、事前に用意してある別のExcelファイルを(雛形.xlsとします) タイトル1.xls タイトル2.xls タイトル3.xls のような名前で入力した分だけExcelファイルを複数作成できるようにしたいのですが、 方法がよくわかりません。

  • vbaでvlookup

    エクセルのVBAについて。 指定した範囲の中から検索条件に一致したデータを検索し、取り出してくれる関数vlookup をVBAで実現したいのですが、 目標として、エクセルのセル(列)に、値を入力されているとします。 VBAを実行するボタンをクリックすると、、、 その値に対応する文字列(事前に用意)をその値の右のセルに自動で入力させたいです。 このVBAを作ることが目標です。 vbaでvlookupを実現でなくても、それよりも簡単な方法があれば教えていただきたいです。 お手数ですが、よろしくお願いします。

  • ExcelのVBAのマクロについての質問です。

    セルA1:タイトル1 セルA2:タイトル2 セルA3:タイトル3 上記のように各セルに文字を入力しボタンを押下します。 そうすると、事前に用意してある別のExcelファイルを(雛形.xlsとします) タイトル1.xls タイトル2.xls タイトル3.xls のような名前でセルに入力した分だけExcelファイルを複数作成できるようにしたいのですが、 方法がよくわかりません。どなかた方法を教えていただければ幸いです。 ご回答お待ちしております。

  • VBAと印刷について

    VBAと印刷について エクセル2003で下記の表を作成しました。 月一回書類の確認日があり、 それを行った日をB列のどこか一つの セルに入力します。 そして、その表を月一回印刷します。 今後は印刷はマクロボタンでしたいのです。 ここで質問なのですが、例えば この表を印刷する際、 B列のどこか一つのセルに、「O月分書類確認」 の入力がなければ、印刷できないマクロボタンを 作成することはできるのでしょうか。 確認日は月一回と決まっています。どこの日の セルに入力するかは決まっていません。 ただ、月一回は必ずします。 翌月に決まります。 お願いします。

  • エクセルVBAでできる?

    こんばんは。大変困った事態発生中です。 エクセルマクロ?VBA?で作るように指示があったのですが (1)エクセルのセルベースではないフォーマットで様々な数値が入力できるシステムを作れ (2)数値を入力したら『登録』ボタンがあり、次の画面へ進む (3)数値を利用して様々な表・グラフを自動作成するシステムを作れ (4)数値をいろんな表に活用及び自動入力されるようにしろ (5)ネット上に立ち上げて、暗証を知る人間のみ閲覧ができるようにしろ (6)その表は一切コピー・保存ができないようにしろ との事で、それをしている人がいるので、短時間(1日)で簡単に作成できる! と言われました。 そんなわけで明日までに仕上げなければいけないのですが、どなたか虎の巻をご存知なら教えて下さい。 また、こうやったら(簡単に)できるんじゃない?という方、どんなささいな事でもいいので教えて下さい。 私は、エクセルは使っている、という程度の人間です。 よろしくお願いします!!!!!!!!!!!!!!!!!!!!!

専門家に質問してみよう