アフィリエイト広告を利用しています
ファン
最新記事
カテゴリーアーカイブ
日別アーカイブ

広告

この広告は30日以上更新がないブログに表示されております。
新規記事の投稿を行うことで、非表示にすることが可能です。
posted by fanblog

2016年10月02日

エクセル(Excel)技,VBA,メッセージボックス

マイクロソフトアクセスはこちら

人気ブログランキングへ





[メッセージボックスで引数Buttonsを使用する場合]

msg引数1.png

例)
Sub sample()

MsgBox "削除してもよろしいですか?", vbYesNo + vbExclamation, "削除の確認"

End Sub

上記のマクロを実行すると下のようなメッセージボックスが表示されます。

msg引数2.png

MsgBox "削除してもよろしいですか?", vbYesNo + vbExclamation, "削除の確認"

この部分ですが、MsgBox "削除してもよろしいですか?"ここまでは「削除しても

よろしいですか?」というメッセージを表示するだけ。

vbYesNo + vbExclamation,は[引数Buttons]の部分です。

最後の"削除の確認"は[, Title]の部分です。











2016年09月30日

エクセル(Excel),技,VBA,メッセージボックス

マイクロソフトアクセスはこちら



【メッセージボックス】

IFの説明でも使用していますが、画面にメッセージボックスを表示させる命令です。

これも非常によく使用しますね。

例)

Sub sample1()

MsgBox "ようこそ"

End Sub

MsgBox1.png

マクロを実行すると上図のようになります。

これは単に「メッセージボックス」を表示するだけです。

「OK」を押してもメッセージボックスが消えるだけです。

[構文]

MsgBox (Prompt [,Buttons][, Title][,helpfile,context] )

引数の[,Buttons][, Title][,helpfile,context]は省略できます。

引数のPromptにはメッセージとして表示する文字列を指定します。

また改行したい場合は改行コード(& vbCrLf &)を改行したい場所に挿入します。

例)

Sub sample()

Dim msg As String ‘変数msgの宣言

msg = "ようこそ!" & vbCrLf & "エクセルへ"  ‘変数msgへメッセージを格納

MsgBox msg     ‘メッセージに変数msgを表示

End Sub

上記のマクロを実行すると下記のように表示される。

MsgBox2.png

人気ブログランキングへ














2016年09月28日

エクセル(Excel),技,VBA,条件分岐

Microsoft Accessに関してはこちら



Select Case

複数の条件により分岐させたい場合に使用します。

【構文】

Select Case 変数

  Case 値1

    変数=値1の場合の処理

  Case 値2

    変数=値2の場合の処理

  Case Else

    変数が値1・値2に満たなかった場合の処理

End Select

上記のように変数が値1ならばその処理、そうでない場合は値2をみて値2ならばその処理、

そうでない場合は別の処理というように順番に見ていきます。その中で条件があった処理をする、

というものです。

条件に比較演算子を使用する場合は

 Select Case 変数

  Case Is 値1

    変数=値1の場合の処理

  Case Is 値2

    変数=値2の場合の処理

  Case Else

    変数が値1・値2に満たなかった場合の処理

End Select

上記のように「Case Is」を使用します。

例)

Sub smple()

Dim m As Integer

m=InputBox(“数字を入力してください”)

 Select Case m

  Case 80 To 100

MsgBox”優です”

  Case 70 To 79

   MsgBox”良です”

  Case 60 To 69

   MsgBox”可です”

  Case 0 To 59

   MsgBox”不可です”

  Case Else

    MsgBox”数字は0〜100の数字で入力してください”

End Select

上記を実行した場合

Case1.png

上記のように数字を入力するボックス(インプットボックス)が表示され、

例えば「73」と入力して「OK」ボタンを押すと

Case2.png

上記のように「良です」というメッセージボックスが表示されます。

人気ブログランキングへ
















2016年09月26日

エクセル(Excel),技,VBA IF

Microsoft Accessに関してはこちら


【IF文】

個人的にVBAで最も使用するのがこのIF文です。

条件により処理を分岐させる場合に使用します。

[構文]

If 条件式1 Then

条件式1を満たした場合の処理

ElseIf

条件式2を満たした場合の処理

Else

条件式1・2を満たさなかった場合の処理

End If


例)

Sub smple()

Dim intScore As Integer

intScore = InputBox("得点を入力してください")   ‘最初に得点を入力する入力ボックスを表示させる

If 79 < intScore And intScore <= 100 Then   ‘入力された得点が79〜100の場合

MsgBox "優です"            ‘メッセージボックスで「優」を表示

ElseIf 69 < intScore And intScore < 80 Then  ‘入力された得点が69〜80の場合

MsgBox "良です"            ‘メッセージボックスに「良」を表示

ElseIf 59 < intScore And intScore < 70 Then  ‘入力された得点が59〜70の場合

MsgBox "可です"            ‘メッセージボックスに「可」の表示

ElseIf 0 < intScore And intScore < 60 Then  ‘入力された得点が59以下の場合

MsgBox "不可です"           ‘メッセージボックスに「不可」の表示

Else                    ‘上記条件以外の場合

MsgBox "得点は 0〜100の数字で入力してください" 

‘メッセージボックスに「得点は0〜100の数字で入力してくださいと表示

End If                   ‘If分の終了

End Sub

上記のマクロを実行すると最初に下のように「インプットボックス」が出現して入力を求められる

状態になります。ここで「得点」を記入して「OK」を押します。

VBAIF1.png

仮に「60」を入力して「OK」を押すと下のような「可」ですというメッセージが表示されます。

VBAIF2.png

このように条件により処理を変更することが出来ます。

「79」から「100」の場合は「優」

「69」から「80」の場合は「良」

「59」から「70」の場合は「可」

「59」以下の場合は「不可」と表示されます。

また上記以外の数字(例えば120とか)を入力された場合は「得点は0〜100の数字で

入力してください」というメッセージが出ます。

※条件式で使用される比較演算子一覧

・「=」・・・等しい

・「<」・・・○○より小さい

・「<=」・・・○○以下

・「>」・・・○○より大きい

・「>=」・・・○○以上

・「<>」・・・等しくない

個人的によく「End If」を忘れて警告が出ます。私だけですかね。(笑)

人気ブログランキングへ













タグ:VBA IF

2016年09月24日

エクセル(Excel),技,VBA Do Loop

Microsoft Accessに関してはこちら



Do Loop文

1、Do 〜 Loop

条件が満たされる限り、同じ処理を繰り返し、条件が満たされなくなったら

ループを抜けるという意味です。

For・・・Nextはループを回す回数が決まっている場合、Do 〜 Loopはループを

回す回数が不明の場合に使用する。

[構文1]条件が満たされる(真の場合)限り、同じ処理を繰り返し、条件が偽になったところでループ終了

 Do While 条件式

  条件式が真(True)の場合に実行する処理

 Loop

[構文2]条件が満たされる(真の場合)限り、同じ処理を繰り返し、条件が偽になったところでループ終了

 Do

  条件式が真(True)の場合に実行する処理

 Loop While 条件式

[構文3]条件が偽(False)である限り、同じ処理を繰り返し、条件が真になったところでループ終了

 Do Until 条件式

  条件式が偽(False)の場合に実行する処理

 Loop

例1)Sub sample1()

 Dim m as Integer       '変数

  m=1           ‘変数mに1を代入

Do Cells(m,1).Value=m   ‘「セルA1(この場合)に変数m(この場合は1)

m=m+1          ‘変数mに+1する

Loop While m<5       ‘「mが5よりも小さいとき」という条件でループせよという命令

End Sub


例2)Sub sample1()

 Dim m as Integer     '変数

  m=1        ‘変数mに1を代入

Do While m<5     ‘「mが5よりも小さいとき」という条件

Cells(m,1).Value=m  ‘「セルA1(この場合)に変数m(この場合は1)

m=m+1       ‘変数mに+1する

Loop

End Sub


例1・例2いずれもマクロを実行すると下記の結果になります。

Do Loop1.png

例3)

Sub sample1()

Dim m As Integer   '変数

m = 1

Do Until m > 5   ‘mが5よりも大きくなるまでループする。

Cells(m, 1).Value = m ‘セル(m,1)この場合はA1に変数mを入れなさいという命令。

m = m + 1      ‘mに+1しなさいという命令

Loop

End Sub

上記のマクロを実行すると下記のようになります。


Do Loop2.png

このように繰り返し処理はよく使用しますので覚えておくと便利です。

人気ブログランキングへ















タグ:Do Loop

2016年09月23日

エクセル(Excel),技,VBA For Next

Microsoft Accessに関してはこちら


【繰り返し】

一番多いのは作業の繰り返し(ループ)でしょう。

私がよく使用するのはデータベースがあって、ある条件で上から順番に検索していき、

条件があった行・セルを探してそれを処理する。という使い方が多いですね。

For・・・Next

処理を繰り返したい回数が決まっている場合は「For・・・Next」を使用します。

【構文】

For [変数]=[開始値] To [終了値] Step(増減値)・・・Stepは省略できます。

  [処理]

Next [変数]

使用例)

Sub sample1()

Dim n As Integer 'ループ変数

Dim m As Integer '行の変数

m = 1

For n = 1 To 10

Sheet1.Cells(m, 1) = m

m = m + 1

Next n

End Sub

上記の内容ですが変数「n」はループの変数です。変数「m」は行の変数です。

m=1は最初に「m」という変数に「1」を設定します。

「For n = 1 To 10」はループ変数「n」は1〜10の間で設定しますという意味です。

「Sheet1.Cells(m, 1) = n」シート1のA1に変数m(ここでは「1」)を入力しなさいという意味です。

「m = m + 1」変数「m」にループごとに+1しなさいという意味です。

「Next n」ここで変数が+1されます。

次のループの時にmは「2」になり、A2に2が表示される。

上記のマクロを実行した結果として下記のようになります。

For Next.png

A列で1行目から順番に数字が入りました。

ループ回数を20回にすると20行目まで数字が入ります。

For・・・Nextはこのような使い方をします。ここではStepを使用しませんでしたが、

Stepで指定するとその指定分だけNext nが増減されます。

例)

Step 2とした場合は変数「n」が最初は「1」で次にループ時には+2されて「3」になるということです。

人気ブログランキングへ







HTMLとかよくわかんない…そんなあなたも簡単にブログが作れます!【JUGEM PLUS







2016年09月22日

エクセル(Excel)技,VBA,RangeとCells

Microsoft Accessに関してはこちら


・RangeとCells

セルを選択する場合RangeとCellsのどちらを使用すればいいのか。

Rangeを使用する時は

・固定位置のセルの場合

・セル範囲(複数セルの選択)の場合

上記以外は通常Cellsを使用します。

例)C5の場合

Range(“C5”)という表現になります。セル名は” ”で囲む。

Cells(5,3)という表現になります。Cellsは(行,列)になります。

範囲を選択する場合はRange(始点セル:終点セル)です。

複数行の場合はRange(Rows(1):Rows(5))で1行目から5行目が選択されます。

複数列の選択の場合はRange(Columns(1):Columns(3))で1列目(A列)から

3列目(C列)までが選択されます。

セルを変数で使用する場合はCells,Rows,Columnsを使用しましょう。

使用例

Range(“A5”).Select・・・A5セルが選択されます。

Cells(5,1).Select・・・A5セルが選択されます。

Cellsの場合変数も使用できます。

例)

Dim i as Long・・・「変数i」を宣言

 i=5・・・「変数i」に5を格納

Cells(i,1).Select・・・A5セルを選択


・DeleteとClearContents

Deleteはセルごと削除して上に詰めます(詰める方向は指定出来ます)

ClearContentsはセルの中身を消去します。

例)

Range(“A1:B3”).Delete Shift := xlShiftUp・・・A1からB3まで削除して上に詰めます。

列削除の場合はRange(“B:B”).Delete・・・B列の削除

行削除の場合はRange(“2:2”).Delete・・・2行目の削除

Range(“A1:B3”). ClearContents・・・ClearContentsは単純にA1からB3の内容を消去します。

※オブジェクト・メソッド・プロパティの話

本来もっと早く説明しておく必要のある事柄だと思います。

「オブジェクト」とは「もの」「対象」「目的」という意味があります。

エクセルの場合、「ワークシート」「Range」等を差します。階層構造になっています。

「メソッド」というのは「命令」「操作」という意味で「オブジェクト」に対して命令することです。

「プロパティ」というのは「属性」という意味で「幅」「色」「高さ」などの事です。

上記のRange(“A1:B3”). ClearContentsは本来Sheet1.Range(“A1:B3”). ClearContents

と書くべきなのです。複数シートがある場合、どのシートなのか区別がつかないので

Sheet1というオブジェクトを指定する。Sheet1もRange(“A1:B3”)もオブジェクト、

ClearContentsがメソッド部分に当たります。

時々プログラムを書いていて「オブジェクトが見当たりません」等のエラーメッセージが

出る場合があります。そのようなときは「オブジェクト」を指定しているかどうか確認してください。

人気ブログランキングへ












タグ:RangeとCells

2016年09月21日

エクセル(Excel)技,VBA,変数






Microsoft Accessに関してはこちら




【変数の宣言】

VBAを使う上で最も大事なことの一つが「変数」の宣言です。

変数を使用するためには

・変数を宣言する

・変数にデータを入れる

・変数のデータを利用する

という3段階あります。

※変数は必ず宣言します。これは重要です。必ず宣言してください。


・「変数」とは何か。

「ユーザーが用意する入れ物」です。変数には色々なものが入れられます。

「数値」「文字列」「計算の途中の値」「論理値」「セルそのもの」「ワークシートそのもの」

変数名・・・英数字・漢字等使用できる。ただし先頭はアルファベットや漢字といった

文字列であることが必要。

例)

・変数1

・n

・NAME

・OLD等々

【宣言の方法】

書式:Dim 変数名 as データ型

例)Dim 変数1 as String

最後のStringが「データ型」になります。型を指定してない場合は、どのような型の値でも格納できますが、

予定と違った型を格納した場合にミスが発生しやすくなります。

そのためにも型を指定するようにします。

簡単に型の説明をしたいと思います。

・String・・・文字列型・・・・・・・文字列

・Boolean・・ブール型・・・・・・・TrueまたはFalse

・Byte・・・バイト型・・・・・・・0から255の正の整数

・Intege・・整数型・・・・・・・・-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.79769313486231E308から-4.94065645841247E-324

                  4.94065645841247E-324から1.79769313486232E308

・Currency・通貨型・・・・・・・-922,337,203,685,477.5808から
                 922,337,203,685,477.5807

・Date・・・日付型・・・・・・・西暦100年1月1日から西暦9999年12月31日

・Object・・オブジェクト型・・・オブジェクト参照するデータ型

・Variant・バリアント型・・・・あらゆる種類の値を保存できる型


少し練習してみましょう。

「開発」タブにて「Visual Basic」を開き、「挿入」ボタンから「標準モジュール」を選択してください。

ここの「Option Explicit」の下に

Sub Sample()

Dim tmp As Single

tmp = 10 / 4

MsgBox tmp

End Sub

と入力してください。(下記画面参照)

変数.png

この状態で「マクロ実行」「Sample」を選択して実行すると下記画面のようにメッセージボックスが

出現して「2.5」と表示されます。

変数2.png


Sub Sample()        ‘これはマクロの名前

Dim tmp As Single   ‘ここが変数の宣言です。変数「tmp」は単精度浮動小数点型で宣言するという意味です。

tmp = 10 / 4      ‘ここは変数に値を格納しています。変数tmpに「10/4」を格納

MsgBox tmp      ‘MsgBox(メッセージボックス)にtmpの内容を表示せよ

End Sub          ‘マクロの終了

上記を見て頂ければ分かるように画面上に「2.5」と表示されたメッセージボックスが出現しております。

もし、この変数型が「Single」ではなく「Long」だったら表示は「2」になります。

「Long」は整数しか扱えないからです。

人気ブログランキングへ










タグ:変数

2016年09月20日

エクセル(Excel)技,VBA続き

【ボタンの作成】

VBA3.png

「開発」タブの「挿入」というところをクリックすると上記の画面になります。

ここに「フォームコントロール」と「ActiveXコントロール」の2つがあります。

とりあえず今回は「ActiveXコントロール」を使用します。

VBA4.png

上図の「ActiveXコントロール」の上段左にボタンのマークがあります。そこをクリックして

ワークシート上に適当に四角を書くと上図のようにボタンが作成できます。

その際リボンの「デザインモード」も自動的に押された状態になります。ボタン等を配置して

編集する場合は必ず「デザインモード」にしてください。

VBA5.png

ボタン上で右クリックするとメニューが表示されるので「プロパティ」を選択します。

すると左のようなボタンのプロパティが表示されます。ここでボタンに関する様々なことが変更できます。

今回はとりあえずボタンの名前を変えてみましょう。

「Caption」という項目がボタンの名前になります。現在は「CommandButton1」になっています。

この「CommandButton1」の部分を「コピー」と変更してプロパティボックスを閉じてください。

VBA6.png

上記のようにボタンの名前が「コピー」になりました。

このボタンにプログラムを書き込んで行きましょう。

このボタンをダブルクリックすると下記のようなVBA画面が表示されます。

VBA7.png

Private Sub CommandButton1_Click()

End Sub

上記の内容は自動的に記載されます。この2行の間にプログラムを書いて行きます。

前回マクロの記録をしたと思います。その内容を書いてみましょう。

単純に下のように「Module1」の内容をコピーして(下の青の部分)貼り付けてみましょう。

本当は自分で書いた方が勉強になるので書いてみてはいかがでしょうか。

VBA8.png

下記のようになりました。

VBA9.png

これで「コピーボタン」にD2の内容をD3からD5へコピーせよという命令文が登録されました。

一度VBA画面を閉じて、デザインモードもOFFにしてワークシートのD3からD5を消去して

「コピー」ボタンを押してください。

無事にマクロ1の時と同じ動作をしましたか?

同じ動作をしたならば無事に登録されていることになります。

後はVBAのコマンドを覚えて様々なプログラムを書けるようになれば良いと思います。

「習うより慣れろ」ですね!

私も最初はこのようにマクロで登録したプログラムをコピーして使用していました。

今でもVBAを作成する場合は大いにこの方法を利用しています。

現在はコピーした後、一部を改変して、応用しながら使用しています。

人気ブログランキングへ













タグ:VBA

2016年09月18日

エクセル(Excel)技,VBA

【Excel VBA(Visual Basic for Application)の話】

Excel VBA はMicrosoft Office Excel専用のマクロ言語です。

・「開発」タブの「Visual Basic」というボタンを押すと下のような画面が表示されます。

これがVBAの作成画面です。

VBA1.png

前回「マクロ」のところで「マクロの記録」を行いました。

それが残っているという前提で話をしていきます。

右側のウィンドウの下の方に「+標準モジュール」というところがあります。

そこの「+」を押すと「Module1」というアイコンが表示されるのでそれをダブルクリックしてください。

下記の画面になると思います。

VBA2.png
Sub Macro1()
'
' Macro1 Macro
'

'
Range("D2").Select
Selection.Copy
Range("D3:D5").Select
ActiveSheet.Paste
End Sub

上記がVBAで記述されたプログラムです。

簡単に説明しますと、最初の「Sub Macro1()」はマクロ名を表示しています。

これは前回記録したマクロ1の内容なので、名前が「Macro1」になっています。

次に「' Macro1 Macro」ここはコメント部分になります。

頭に「’」が付いている場合はプログラムではなくコメントとして扱われます。

この部分は緑色になっていると思います。このようにメモ感覚(覚書)で使用出来るので知っておくと便利です。

「Range("D2").Select」ここからがプログラムの本文でD2セルを選択しなさいという命令文です。

「Selection.Copy」選択したD2セルの内容をコピーしなさいという命令文です。

「Range("D3:D5").Select」D3からD5まで選択しなさいという命令文です。

「ActiveSheet.Paste」選択した範囲に貼り付けしなさいという命令文です。

このように見ていくとマクロ1の内容が明らかですね。D2をコピーしてD3からD5へ

貼り付けしなさいという指示ですね。

VBAというのはこのような指示をプログラムで作成することです。












人気ブログランキングへ

検索
タグクラウド
プロフィール
yoshimatsuさんの画像
yoshimatsu
60過ぎのおっちゃんです。同じ年齢層の中ではそこそこパソコンが使える方だと自負しています。今まで会社等で学んだ知識等を紹介していきたいと思います。
プロフィール
google-site-verification: google948a2bbbd2fd5164.html
×

この広告は30日以上新しい記事の更新がないブログに表示されております。