• 締切済み

VBAの記述の、Sub SetValue()など

VBA初心者です。 VBAの記述の先頭行に記載する、Sub SetValue()や、 Sub SelectCell() これは、なんと言うのでしょうか コンソールのメニューからでの、入力できるのでしょう ちょっと、探してみたのですが、分かりません。 この、Sub SelectCell()みたいなのが、処理ルーチン一覧のオブジェクトになるのでしょうか? ご指導、御教授おねがいいたします。

みんなの回答

回答No.2

SetValue()やSelectCell()は、サブプロシージャの名前です。色々な処理をひとまとまりにして名前を付けているのです。 Sub SelectCell() 色々書いてる End Sub これが1個のサブプロシージャです。どのマクロも必ずこの形になります。 どこに書いてるのかというと、Alt+F11を押してください。VBE(Visual Basic Editor)が立ち上がります。これはマクロを編集管理するためのものです。ここに書いていきます。詳細は本を入手して勉強してください。

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

まずは、参考書や学習サイト等を一通り終らせましょう。 基本かつ大事なことなので、説明が書いてあるはずです。 http://msdn.microsoft.com/ja-jp/library/office/gg278504%28v=office.15%29.aspx subステートメントはプロシージャを定義するためのものです

関連するQ&A

  • VBAのプロシージャの記述について

    Sub データ検索() Dim myNo As Variant Dim mykekka As Range myNo = InputBox("機番Noを入力してください。", "機番No入力") Cells.Find(What:=myNo, LookAt:=xlPart).Select End Sub 上記のような検索のプロシージャを記述しました。 セルB(機番)を検索して該当の単一セルが選択されるまでは、記述出来たのですが、選択された単一セルの行(A~W)を取得して、下の空白の行にコピーしたいのですが、選択された単一セルの行(A~W)の取得の仕方が分かりません。 VBAを始めたばかりなので、質問の内容が分かりにくいかもしれませんがアドバイスよろしくお願いします。

  • SubとFunctionの使い分け方。(Access VBA)

    Sub:実行するとそのまま処理が終わり、特に次の作業に影響しない。 Function:関数と同じように使い、そこでの戻り値をどこかに代入して利用する。 あるテキストにこの様に書いてありました。 この考え方だと、マクロをVBAに変換すると「モジュールオブジェクト」に出来るFunctionプロシージャは、Subの方が理解にしっくりくるのですど・・・ 例えば、「テーブルを開く」(マクロ)だと、ただテーブルを開いて処理を終了するだけなので、SubでVBAが出来るの方が納得するのですけど。 正直、今の認識では、本を読んでいても何となく分かったような気がするだけで、SubとFunctionの使い分けがイマイチ分かりません。 どなたか、SubとFunctionの使い分けの目安をお教えいただけないでしょうか?。 (Access VBA初心者)

  • 大量のオブジェクトで同様のイベント処理をしたい場合の記述

    Excel VBAでフォームなどに大量のオブジェクトを配置して、各々のオブジェクトで同様のイベントを処理したいのですが、まとめて記述する方法はあるのでしょうか。 ユーザーフォーム上に大量の数値入力ボックス(TextBoxオブジェクト)を配置して、全てのボックスに同様の入力値制限を課そうとして、コードが肥大化して困っています。どうかよろしくお願い致します。 例) Sub TextBox1_change() <プロシージャー> end sub Sub TextBox2_change() <プロシージャー> end sub ・・・・・・ Sub TextBox10_change() <プロシージャー> end sub (<プロシージャー>部分は共通)のように延々と記述しなくても済む方法はあるのでしょうか。

  • VBAでif関数の処理を1行で記述したい

    VBAで if関数の処理が複数ある場合、 if ** then (AAA と BBB) のように1行で記述したいのですが、可能でしょうか? また、Cだと、;で1行に追記できるのですが、 VBAで複数処理を1行で書く方法はあるのでしょうか?

  • VBE上の任意の行のVBAコードを実行する

    こんにちは。 現在、Word2007およびExcel2007で、VBAの勉強をしています。 VBE上にSubプロシージャの定義を記述し、それのどこかにカーソルがある状態でF8キーを押すと、 Subプロシージャの先頭行から順に、VBAコードが実行されます。 では、カーソルがある行のVBAコードを、いきなり実行する事ってできないのでしょうか? 以上の件について何かご存知の方がいらっしゃれば、是非教えて頂きたいと思います。 では、よろしくお願い致します。

  • エクセルVBAの記述

    エクセルシートで教えてください。 Sheet1 に入力用シートを作成して、Sheet2 にデータを表示されるようにするには、どの様にVBAを記述したらよいでしょうか? 説明 Sheet1 の入力は、日付と入退出の時間です。同日に二回・三回入室すると、同じ日付が二行・三行になります。 Sheet2 の表示は、列が10分単位で24時間表示です。行が1日から31日までの日付です。 サンプル画像のように、Sheet1 に入力した場合に、Sheet2 に赤色で滞在時間を表示するには、どうすればよいでしょうか? Sheet2 のひとつのセルは10分です。

  • エクセルVBAの記述について

    OSはWin98、エクセル2000です。 次の処理をVBAで処理したいのですがうまく作動しま せん。 ご教授願います。 セルA1から下に向かって1から20までランダムに数 値が入ってます。 同じ数値は無く、数値も3行(セルA3)で終わる場合 も有ります。 この場合セルC1から下に向かって順にA1&A2、A 1&A3と記述したいのですが・・・ 例) A1に5、A2に7、A3に15、A4に10でしたら C1に57、C2に515、C3に510、C4に715 C5に710、以下・・・と記述 よろしくお願いします。m(_ _)m

  • excel 2007 VBA コードの記述

    Excel 2007 を使用しています。 TEST.xlsm というブック内に テスト01 というシートを作成し、そのタブを右クリックして コードの表示 を選択。 表示されたVBAコード入力シートに下記のコードを記述して使用してます。 Private Sub Worksheet_Change(ByVal Target As Range) 'この行から If Intersect(Target, Range("E3:E33,G3:G33,AH3:AH33,AJ3:AJ33,BK3:BK33,BM3:BM33")) Is Nothing Or Selection.Count <> 1 Then Exit Sub Application.EnableEvents = False If Target <> "" Then If IsNumeric(Target) Then Target = Target - 23 End If End If Application.EnableEvents = True End Sub 'この行まで この条件に新たに下記のコードを追加したいと思い ネット検索しながらあれこれ試行錯誤してますが まだまだVBA初心者のため上手く機能してくれません。 ※上のコードだけなら思った通りに機能します。 Private Sub Worksheet_Change(ByVal Target As Range) 'この行から If Intersect(Target, Range("Y3:Y33,BB3:BB33,CE3:CE33")) Is Nothing Or Selection.Count <> 1 Then Exit Sub Application.EnableEvents = False If Target <> "" Then If IsNumeric(Target) Then Target = Target - 30 End If End If Application.EnableEvents = True End Sub 'この行まで どなたかこれら二種のコードを一つにまとめた記述方法を 教えて頂けますでしょうか?

  • VBAでどのようにすればいいのでしょうか。

    Excel2007でCSVファイルを取り込むVBAで作成しています。 下記のURLを参考にしています。 http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110_030.html 皆さんにお聞きしたい事があり、投稿させていただきました。 CSVファイルの先頭行にタイトル行が指定されている場合、VBA上で除外する事は可能でしょうか。 できれば Do Until objTS.AtEndOfStream ※この中で・・・ Loop すみませんがどうかアドバイス宜しくお願いします。 では失礼します。

  • VBAでオブジェクト変数にsetしたシートがactiveかどうかを調べるには?

    標準モジュールの冒頭でワークシート用のオブジェクト変数を確保し、 あるタイミングで、あるシートをそのオブジェクト変数にSetしています。 で、そのシートに値をセットするときに、そのシートがActiveだった場合だけやりたい処理があるのですが、Setしてあるオブジェクト変数だけを見てそのシートがActiveか否かを判断する方法って、あるのでしょうか。 コード例) Private oSheetA as Worksheet Sub SetSheet(sName as String)   Set oSheetA = worksheets(sName) End Sub Sub SetValue(nValue as integer)   xxxxxx ←ここでoSheetAがActiveならやりたいことがある。   oSheetA.Cells(nRow, nCol) = cValue End Sub 具体的には、複数のBookを開いている状態で、Activeシートが何であるかはオペレータの操作次第なので固定化できない状態で、SetValueが呼び出されたとき、oSheetAがActiveだったら、値をセットするセルが見えるようにセルをActivateかスクロールさせたいんです。

専門家に質問してみよう