• ベストアンサー

エクセル VBA 初心者です

初めて、VBAマクロに挑戦する初心者です。(エクセル2003) 下記サイトの説明のように 1つ1つのセルをテキストボックス化できるようにしたいと考えております。 http://tks.or.tv/note/2008/10/excelvba-3.php そこで、自分のエクセルから、マクロ→basic editor→挿入→標準モジュールを表示するところまで到達しました。 ここでわからない所が、上記サイトには、コードが3分割になっております。 どのように貼り付けを行い、目的の操作までできるのかわかりません。 どうぞよろしくお願いいたします。

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率65% (1618/2457)
回答No.2

一番上の定数のボックスの部分を最初にコピーします。その後 http://tks.or.tv/note/2008/10/excelvba.php ここにある2個を分割は無視して2個とも全部選択してその下にコピーします。 最後に最初の残りの2個を分割を無視して全部選択してその下にコピーします。 テキストボックスにしたいセルを選択して、マクロからCell2Textboxを実行します。

kenthehg
質問者

お礼

本当にありがとうございます! 簡単に作れて、大変感動しました! これで、作業がだいぶん楽になります。 ありがとうございました。

その他の回答 (1)

  • Prome_Lin
  • ベストアンサー率42% (201/470)
回答No.1

そのまま、3つのブロックを続けて入力またはコピー&ペーストすれば、大丈夫です。 Sub ~ End Sub までは、1つのブロックで、全く独立しています。 まず、最初のSub Cell2Textbox() ~ End Subの部分が実行されます。 この中にCall MakeTextBox(…)という箇所がありますが、 ここで、一番下のブロックPrivate Sub MakeTextBox(…)~End Subを呼び出しています。 このように、「Sub~End Sub」の部分は、独立していて、1つの塊で、 他から呼び出して利用するものです。 1つのまとまった仕事をここでさせるのですが、 このように記述することで、 仕事単位でプログラムを見ることが出来、 わかりやすいプログラムになります。 また、独立しているので、 このまま他のプログラムに利用できます。 使われる変数も、「Sub~End Sub」内で独立しています。 従って、最初の「Sub~End Sub」内で使われている変数は 他の場所で同じ変数名を使っても値は変わりません。 特に、同じ事を何度もする場合には、 このように、「Sub~End Sub」を使って その部分を、そのつど、呼び出すことによって プログラムを小さく出来るだけでなく、 プログラムの修正でも、 1箇所を直せば済むので、効率的です。 以上、参考になったでしょうか?

kenthehg
質問者

お礼

非常にわかりやすいご説明を頂き、ありがとうございました。 無事実行することが出来ました! 大変勉強になります。 プログラムは書くことはまだできませんが、今後挑戦していきます。 ありがとうございました

関連するQ&A

  • エクセルVBAで標準モジュールを保護したい

    エクセルのVBAマクロを使用したエクセルフィルがあります。 ユーザーは標準モジュールに記述した関数を使ってシートのマクロを変更してカストマイズできます。 ユーザーが標準モジュールを変更すると使用できなくなりますので、この標準モジュールだけをユーザーが変更できない、または見えないようにする方法をご教示いただけませんか。 よろしくお願いします。

  • エクセルVBAの組み込み方

    ブックの再計算時間を短縮させるのを目的としてタイマーを組み込んで再計算時間を検証しようと考えています。   http://msdn.microsoft.com/ja-jp/library/aa730921.aspx に記述されているVBAを組み込もうと思っているのですが、その方法がわかりません。 VBエディターで、挿入-標準モジュール で表示されたウインドウにソースを貼り付け、上書き保存したのですが、ワークシートに戻ってマクロを実行させようと思っても、マクロの一覧にはマクロ名が表示されていません。 どこに誤りがあるのでしょうか。 また、このマクロの使い方はどのようにするのでしょうか。F9を押すたびに再計算時間が表示されるのですか? 以上、よろしくお願いします。

  • VBAを覚えたいのですがさっぱりわかりません、初心者です。

    VBAを覚えたいのですがさっぱりわかりません、初心者です。 VBAを活用したいと思っておりますが、実際作るとなると、 何から覚えれば良いのか?何から作成していけば良いのか分かりません。 単純にエクセルから「Visual Basic Editor」を選択し、 ユーザーフォームの挿入からフォームやコマンドボックスを使用して動作画面を作成し、 コマンドボタンを押したら『if文』などを入力していけば良いと考えていたのですが、 特に”マクロ”についてさっぱり分かりません。 サイトで検索をして内容を読んでも本を読んでも、載っていることは出来ても、 自分がしたいことについては良く分からず、 『一番最初に何をすれば良いのか』すら分かりません。 文章の「起・承・転・結」ではありませんが、 どのように段階を経て作成していくのが一番分かり易いのでしょうか?

  • エクセルVBAでVBAの修正は出来るのでしょうか?

    エクセルVBAでVBAの修正は出来るのでしょうか? あるエクセルファイルにマクロを組み込んでいます(ユーザーフォームも使用)。 このエクセルファイルを複数個フォルダ内にコピーしています。 このコピーした全てのファイルのマクロの修正をVBAで出来ないかと考えています。 修正箇所はモジュール内のコード修正、モジュールの追加、既存のユーザーフォームにボタン等の追加等です。 エクセルは2003を使用しています。 どなたか教えてください。

  • EXCELのVBAについて

    エクセルのVBAでユーザーフォームに作ったテキストボックスに入力した値を、コマンドボタンによる「実行」とともに別に作った標準モジュールの変数として代入するにはどうすれば良いでしょうか? 具体的な流れは、 マクロ実行  ↓ ユーザーフォーム出現  ↓ テキストボックスに数字を代入→「実行」  ↓ 変数を代入された標準モジュールによる処理完了 というものです。 ご教授お待ちしております。

  • Excel:VBAに関して

    バグがある標準モジュール(.bas)がぶら下がっていて、それをバグ修正したモジュールに切り替えたいのです。バグあるモジュールをエクスポートして、新規に改修したモジュールをインポートすれば良いのでしょうが、本数が多くて困ってます。 複数のExcelファイルを対象に、モジュールの入れ替えを行うのに何か良い案はありますでしょうか? Excel VBAでできれば良いのでしょうが、、マクロでそんなことできませんよね・・・?

  • EXCEL VBAで

    VBA初心者です 簡単過ぎる質問で申し訳ありませんが 調べてみても分からなかったので質問さしてもらいます VBEの標準モジュール1で簡単なプログラムを作成しました デバッグツールバーから実行をすると プログラム通り、動作はしましたが・・・ VBE画面を閉じてからの、プログラムを実行する方法が分かりません 右上の×を押しの、プログラム実行です 作ったプログラムを動作しようと思って 開発→マクロを押しても、作ったマクロ名が表示されないです どのようにしたら、標準モジュールで作ったマクロが、表示されるようになりますか?

  • Excel VBA 有効化しても無効化になる

    知っている方ご教授願います。 会社のVBAでデータベース.CSVをVlookで管理表のExcelシートへインポートするVBAを使用しています。 (オープンフォームから、ファイルを選択し起動ボタンを押す) 先日、今まで通りに同じようにインポートしようとしたところ、 「コンテンツの有効化」で有効にする⇒マクロを起動⇒「マクロが無効化されています。」となり、フォームが起動しなくなりました。 インターネットでしらべましたが、 原因不明です。以下のことはやってみました。 1.セキュリティセンターの設定で、「デジタル署名されたマクロを除き、すべてのマクロを無効にする」にしてます。 2.Excelをすべて閉じ、PC再起動しました。 3.以前に使えていた時の、ExcelVBAのモジュールをコピーしてみました。 以上です。 わかる方教えていただけませんでしょうか。 尚、他のVBAが組んであるExcelファイルは動きますので、今使っているインポートの管理表だけが使用できない状況です。

  • 他のExcelファイルのVBAコードを検索したい

    他のExcelファイルに書かれたVBAコードに、ある特定のキーワード(パス名など)が使われているかを自動的に調べるためのVBAを書きたいと思っています。 仕事で使っているマクロが書かれたExcelファイルからある特定の処理をしているマクロを含むものを検索したいのですが、検索するExcelファイルが膨大なため、順番にExcelファイルを開いてVBAコードをチェックしていく工程をマクロ化したいのです。ファイルを順に開いていく処理はマクロ化できるのですが、書かれたVBAコードのチェックをどうしたらよいか悩んでいます。 「VBAコードに対して検索する」または「VBAコードを1行ずつ変数に代入する」、「モジュールシートをテキストファイルに出力する」などの処理が自動化できれば対応できそうなのですが、そのような処理をExcelVBAで作成できるでしょうか。 なお環境はWindowsXPのExcel2003です。 よろしくお願いいたします。

  • ExcelのVBA。public変数の値が消える

    VBAについて。Excelの2003や2007を使っています。標準モジュールで public 変数を定義しました。 ユーザーformを使い、パブリック変数に値を入れたり変更し、標準モジュールに戻ったとき、そのpabulic変数が resetされてしまっている事があります。全く同じマクロで、この現象が起こることと、起こらないことがあります。excelの2003でも2007でも、同じ現象が起こります。簡単なマクロで再現性のある具体的なものを示したいと思い、試しましたが、できませんでした。簡単なマクロでは、きちんとパブリック変数は保持されています。問題のあるマクロはかなり長いものなので、とても示せません。問題がどこにあるのかわかりません。このマクロで不都合があるという具体的なマクロを示すことができない状態での質問で、申し訳ありません。 また、このようなプログラミングをしていて思ったのですが、ユーザーフォームに対してユーザーが任意の引数を渡す方法あるいは、ユーザーフォームから引数を受け取る方法はあるのですか?今は、pubulic変数を用いたり、具体的なセルに値を代入したりしていますが、どう考えてもそれはエレガントではないし、汎用性もないと思います。引数で引き渡すのが一番綺麗でいいとは思うのですが、それが可能かどうかわかりません。

専門家に質問してみよう