• 検索結果がありません。

ExcelVBA

N/A
N/A
Protected

Academic year: 2021

シェア "ExcelVBA"

Copied!
21
0
0

読み込み中.... (全文を見る)

全文

(1)

EXCEL VBA

REGLECASSE YU SATO

(2)

目次

• はじめに • 開発タブの表示 • 拡張子 • VBEの起動と初期設定 • モジュールの挿入、削除 • プロジェクト、モジュール、プロシー ジャ • Subプロシージャ • 基本説明 • セルの指定(Range) • 変数とデータ型(String,Long) • 変数の宣言(Dim) • If~Then • For~Next • 応用:If~ThenとFor~Next • ボタンの作成 • 最後に

(3)

はじめに

• VBAとはVisual Basic for Applicationsの略で、MicroSoft Officeシリーズに搭

載されているプログラミング言語である • Word,Excel,Access,PowerPointなどありますが、今回はExcelに特化して説明 していきます • プログラミングは分からなくても、Excelが多少分かる方であれば取り組みやす いと思います • 記載している内容は割愛している部分多いですが、 VBAに興味を持って頂ける ことに重点を置いているので、少しでもきっかけになれたら幸いです • それでは、まずExcelを開きましょう

(4)

開発タブの表示

• メインタブに「開発」が無い場合は、「ファイル」→「オプション」→「リボン ユーザー設定」からメインタブの開発にチェックを入れて「OK」をクリックし てください 「開発」がなければ、 表示させてください オプション画面

(5)

拡張子

• Excel2007以降、VBAをブックに保存する際は、拡張子を「.xlsm」で保存する必 要があります(Excel2003は「.xls」でOK) • まずExcelのブックを「名前を付けて保存」(「F12キー」を押下)で任意のファイ ル名を入力したら、ファイルの種類を「Excel マクロ有効ブック(*.xlsm)」にし て、保存をします 拡張子 説明 .xls Excel2003までのExcelファ イルに付く拡張子 .xlsx Excel2007以降のExcelファ イルに付く拡張子 .xlsm Excel2007以降のExcelファ イル(マクロ付き)に付く 拡張子

(6)

VBEの起動と初期設定

• VBAプログラムを表示するには「Visual Basic Editor(以下VBE)」を使います。

• VBEを起動するには、「Alt」キー+「F11」キーを押下して起動します。

• メニューより「ツール」→「オプション」

「自動構文チェック」のチェックをはずし 「変数の宣言を強制する」にチェックを

(7)

モジュールの挿入、削除

• メニューより「挿入」→「標準モジュール」を選択します • モジュールを削除する場合は、 モジュールを右クリック、 ※「Module1の解放」を選択し、 エクスポートは「いいえ」を 選択すれば削除できます ※モジュール名によって変わる 挿入画面

(8)

プロジェクト、モジュール、プロシージャ

プロジェクト モジュール プロシージャ プロシージャ プロジェクト モジュール プロシージャ のイメージ図

(9)

SUBプロシージャ

• 「Sub」で始まり「End Sub」で終わります。この間に実際のプログラムを記述 します。そしてプロシージャを識別するために「Sub」の後ろにプロシージャ名 を記述します。 • プロシージャ名はアルファベット、ひらがな、漢字などを使えます。数字も使え ますがプロシージャ名の先頭には文字を使わなければなりません。またアンダー バーは使えますが記号やスペースなどは使えません。 • 2バイト文字(ひらがな、漢字)は使用できますが、あまり好ましくないので使 用は避けましょう。 プロシージャ名

(10)

基本説明

• まず図1の様に入力し、プロシージャ内でカーソルを合わせ「F5」キーを押下す ると、アクティブになっているシートが図2の様になります • 1行ずつ実行する場合は、「F8」キー(ステップ実行)を押下してください • VBAでは、記号の「=」は2つの意味を持ちます 1.右辺と左辺が等しい 2.右辺を左辺に代入する 図1の場合は、2の「右辺を左辺に代入する」になります • 文字列は、“レグルカセ”の様にダブルクォーテーションで括ります • 数値は、ダブルクォーテーションで括る必要はありません 図1 図2

(11)

セルの指定

(RANGE)

• Range(“A1”)は、A1セルを指定します。 • Range(“A1:C5”)は、A1セルからC5セルを範囲指定します(図3) • Range(“A1”,”C5”)は、A1セルからC5セルを範囲指定します(図3) • Range(“A1,C5”)は、 A1セルとC5セルを範囲指定します(図4) • Range(“A:A”)は、A列を範囲指定します • Range(“1:1”)は、1行目を範囲指定します ※ここでは、Cells,Columns,Rowsの説明は割愛します 図3 図4

(12)

変数とデータ型

(LONG, STRING)

データ型 名称 格納できる範囲

Integer 整数型 -32,768 ~ 32,767

Long 長整数型 -2,147,483,648 ~ 2,147,483,647

Single 単精度浮動小数点数型 -3.402823E38 ~ -1.401298E-45(負の値) 1.401298E-45 ~ 3.402823E38(正の値)

Double 倍精度浮動小数点数型 -1.79769313486232E308 ~ -4.94065645841247E-324(負の値) 4.94065645841247E-324 ~ 1.79769313486232E308(正の値) Currency 通貨型 -922,337,203,685,477.5808 ~ 922,337,203,685,477.00

String 文字列型 最大約20億文字まで

Date 日付型 西暦100 年1月1日~西暦9999年12月31日までの日付と時刻 Boolean ブール型 真 (True) または偽 (False)

Object オブジェクト型 オブジェクト Variant バリアント型 すべてのデータ

• 変数とは、数値や文字列などを一時的に格納する入れ物

(13)

変数の宣言

(DIM)

• 変数を使用するには、宣言する必要があります Dim 変数名 As データ型 • 変数名について、Subプロシージャのプロシージャ名の説明とほぼ同じなので割愛 しますが、後から見ても分かるようなものにしましょう • データ型について、前のページの表の通り、数値はLong、文字列はString、分から なければVariantを使いましょう 変数の宣言 値を変数に代入 変数をセルに代入 処理の流れ

(14)

IF~THEN_①

• If~Thenは条件分岐をすることが出来ます If 条件式 Then 条件式を満たした場合の処理 End If • 条件式は、「=」や不等号などを使います(他にもnot,like,and,orなどあります) • 「=」は基本説明で説明した「1.右辺と左辺が等しい」になります もしA1セルが「レグルカセ」だったら、 B1セルに「1」、C1セルに「OK」にする

(15)

IF~THEN_②

• If~Thenの条件分岐を複数させる場合 If 条件式1 Then 条件式1を満たした場合の処理 ElseIf 条件式2 Then 条件式2を満たした場合の処理 Else 条件式1と条件式2を満たさなかった場合の処理 End If ※ElseIfは複数回使用できます • 次ページで詳細を説明いたします

(16)

IF~THEN_③

もしA1セルが「レグルカセ」だったら、 B1セルを「1」、C1セルを「OK」にする もしくはA1セルが「れぐるかせ」だったら、 B1セルに「2」、C1セルに「全部ひらがな」 にする 上記の2つの条件を満たさない場合は、C1セ ルを「NG」にする

(17)

FOR~NEXT_①

• For~Nextは指定した回数同じ処理を繰り返したい場合に使用します For カウント用変数 = 最初の値 To 最後の値 Step 増加値 (繰り返したい処理) Next カウント用変数 • カウント用変数について、数値の変数を使用します • 最初の値、最後の値は、数値を使用します(数値の変数でも可) • Step 増加値は省略可能ですが、増加値を1以外に設定する場合は必要です • Nextの後のカウント用変数は省略可能です

(18)

FOR~NEXT_②

• For~Nextの処理詳細 iが1,2,3,4,5とインクリメントされます Range(“A1”) = “レグルカセ” Range(“A2”) = “レグルカセ” Range(“A3”) = “レグルカセ” Range(“A4”) = “レグルカセ” Range(“A5”) = “レグルカセ” 処理内容は上記と同じです

(19)

応用:

IF~THENとFOR~NEXT

• 応用としてIf~ThenとFor~Nextを併せて使用するコードを紹介します A1セルからA5セルの間に「レグルカセ」が あれば、同じ行のB列に「OK」と入力し、 「レグルカセ」ではない場合は、同じ行のB 列に「NG」と入力する

(20)

ボタンの作成

• Excelシート内に作成したプロシージャを起動するボタンを作成します • 図5のメニューの「開発」→「挿入」→「ボタン」をクリック後に図形の挿入と同 じ要領でシート内に作成すると、図6がポップアップ表示されます • 作成したプロシージャを選択、「OK」を選択すると図7の様になります 図5 図6 図7 VBE画面でのF5キー実行がシート内で出来る 様になります

(21)

最後に

• 資料の誤記、VBAに関するご質問などございましたら、お気軽に下記の連絡先にお 問い合わせください WADAX:[email protected] Slack:y_sato • 業務の作業効率化、工数削減のお役立てればと思います • 今後VBAが上達し客先などで使用する場合は、テストケースを作成のうえ、十分に テストをしてからリリースしてください レグルカセ 佐藤 悠

参照

関連したドキュメント

 母子保健・子育て支援の領域では現在、親子が生涯

いかなる保証をするものではありま せん。 BEHRINGER, KLARK TEKNIK, MIDAS, BUGERA , および TURBOSOUND は、 MUSIC GROUP ( MUSIC-GROUP.COM )

は、これには該当せず、事前調査を行う必要があること。 ウ

(b) 肯定的な製品試験結果で認証が見込まれる場合、TRNA は試験試 料を標準試料として顧客のために TRNA

旅行者様は、 STAYNAVI クーポン発行のために、 STAYNAVI

CleverGet Crackle 動画ダウンロードは、すべての Crackle 動画を最大 1080P までのフル HD

Q-Flash Plus では、システムの電源が切れているとき(S5シャットダウン状態)に BIOS を更新する ことができます。最新の BIOS を USB

ウェブサイトは、常に新しくて魅力的な情報を発信する必要があります。今回制作した「maru