web.tac-school.co.jpweb.tac-school.co.jp/it/pc/pdf/vba-tugaku.pdfrange("b2").copy...

6
学習の流れ Excel VBA 入門 • VBA初心者の方 • Excelの基本知識をお 持ちの方 Excel VBA ベーシック • 基本文法を理解し、読 解(編集)能力を身につ けたい方 Exce lVBA スタンダード • より高度なマクロの記述 能力を身につけたい方 パック受講料 通常受講料 108,000円 20 OFF Excel VBA初心者の方から始められる入門コースから、基本文法が学べる ベーシックや、高度なプログラミングが学べるスタンダードまでしっかりと学習できます!! 全コース Web フォロー付 !! 講義日程・内容 Webフォロー 講義動画をインターネット配信します。受講 期間内であれば、いつでも講義をご受講いた だけます。欠席した場合のフォローや、受講後 の復習としてご利用ください。 Excel VBA 入門 2017年9月 2018年1月 開講予定 象:「Excel中級」コース修了者、または同等レベルの方、マクロ初学者 講座内容:Excelを使用したマクロ・VBAの基本知識とマクロの作成 講義時間:2.5時間×2回(1日10:00~16:00) 通常受講料 15,000円 Excel VBAベーシック 2017年102018年1月 開講予定 5名様集まり次第開講 象:「ExcelVBA入門」コース修了者、または同等レベルの方 講座内容:変数と定数、セルの操作、ステートメント、関数、ブックとシートの操作など 講義時間:3時間×4回(2日間10:00~17:00) 通常受講料 36,000円 Excel VBAスタンダード 2017年102018年2月 開講予定 5名様集まり次第開講 象:「ExcelVBAベーシック」コース修了者、または同等レベルの方 講座内容:プロシージャ、変数と配列、イベント、ステートメント、ユーザーフォームなど 講義時間:3時間×8回(4日間10:00~17:00) 通常受講料 72,000円 ※注「ExcelVBAベーシックとスタンダード」コースは通学講座(渋谷校のみ)となり、年3回開講しております。 また、各講座5名様集まり次第開講決定とさせていただきますので、ご了承ください。

Upload: vuhanh

Post on 07-Sep-2018

234 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: web.tac-school.co.jpweb.tac-school.co.jp/it/pc/pdf/vba-tugaku.pdfRange("B2").Copy Destination:=Range("C4") End Sub ’Copyメソッド Sub Sample10() Range("B2").ClearContents End

学習の流れ

Excel VBA入門

• VBA初心者の方

• Excelの基本知識をお持ちの方

Excel VBAベーシック

•基本文法を理解し、読解(編集)能力を身につけたい方

Exce lVBAスタンダード

• より高度なマクロの記述能力を身につけたい方

パック受講料

通常受講料

108,000円

20%OFF

Excel VBA初心者の方から始められる入門コースから、基本文法が学べるベーシックや、高度なプログラミングが学べるスタンダードまでしっかりと学習できます!!

全コースWebフォロー付!!

講義日程・内容

Webフォロー

講義動画をインターネット配信します。受講期間内であれば、いつでも講義をご受講いただけます。欠席した場合のフォローや、受講後の復習としてご利用ください。

Excel VBA 入門2017年9月2018年1月

開講予定

対 象:「Excel中級」コース修了者、または同等レベルの方、マクロ初学者講座内容:Excelを使用したマクロ・VBAの基本知識とマクロの作成講義時間:2.5時間×2回(1日10:00~16:00)

通常受講料

15,000円

Excel VBAベーシック2017年10月2018年1月

開講予定5名様集まり次第開講

対 象:「ExcelVBA入門」コース修了者、または同等レベルの方講座内容:変数と定数、セルの操作、ステートメント、関数、ブックとシートの操作など講義時間:3時間×4回(2日間10:00~17:00)

通常受講料

36,000円

Excel VBAスタンダード2017年10月2018年2月

開講予定5名様集まり次第開講

対 象:「ExcelVBAベーシック」コース修了者、または同等レベルの方講座内容:プロシージャ、変数と配列、イベント、ステートメント、ユーザーフォームなど講義時間:3時間×8回(4日間10:00~17:00)

通常受講料

72,000円

※注「ExcelVBAベーシックとスタンダード」コースは通学講座(渋谷校のみ)となり、年3回開講しております。また、各講座5名様集まり次第開講決定とさせていただきますので、ご了承ください。

Page 2: web.tac-school.co.jpweb.tac-school.co.jp/it/pc/pdf/vba-tugaku.pdfRange("B2").Copy Destination:=Range("C4") End Sub ’Copyメソッド Sub Sample10() Range("B2").ClearContents End

(通信は基礎)

回数 150分×2回

通常受講料 ¥15,000

講座内容 マクロ/VBAの基礎知識、マクロの作成など

前提条件 Excelの基本操作が出来る方

カリキュラム

1. VBA、マクロとは

2. マクロの作成

3. VBEの編集

4. VBAの文法(オブジェクト、プロパティ、メソッド)

5. モジュール、プロシージャ

6. プロシージャのステップアップ

【コース概要】ExcelマクロとVBAを組み合わせて、簡単なプログラムを作成できる

2.《マクロの記録》集計ボタンをクリックすると実行されるマクロを作成・並べ替え:日付の昇順・小計:日付を基準に売

上金額を合計

Sub 連続するセルに罫線を引く()Range("B5").SelectActiveCell.CurrentRegion.SelectSelection.BorderAround LineStyle:=xlDouble, _ColorIndex:=5

End Sub

6.《CurrentRegionプロパティ》セル(B5)から連続するセルの外枠に罫線を引く

Sub シートチェンジ()

Worksheets("春期").Select End Sub

オブジェクト メソッド

6.《Selectメソッド》「春期」シートに切り替える

Sub 塗りつぶしの色の変更()Worksheets(“sheet1”).Range(“G7:G11”) _.Interior.ColorIndex = 8 Worksheets(“sheet1”).Range(“H7:H11”) _.Interior.ColorIndex = 6

End Sub

6.《Rangeプロパティ》土曜日に水色の塗りつぶし日曜日に黄色の塗りつぶし

Page 3: web.tac-school.co.jpweb.tac-school.co.jp/it/pc/pdf/vba-tugaku.pdfRange("B2").Copy Destination:=Range("C4") End Sub ’Copyメソッド Sub Sample10() Range("B2").ClearContents End

(通学のみ)

回数 180分×4回

通常受講料 ¥36,000

講座内容 ExcelVBAの基礎、変数、セルやブックの操作、条件分岐など

前提条件 ExcelVBA入門レベルを修了、またはExcelのマクロの機能を利用できる方

カリキュラム

1. 変数と定数

2. セルの操作

3. ステートメント

4. 関数

5. ブックとシートの操作

6. デバック

【コース概要】VBAの基礎知識を習得し、プログラムを読んで理解ができ、簡単な編集ができる。

1.《変数》 3.《ステートメント》B列がA列より大きかったらC列に「増加」と入力する

Sub Sample12()Range("B2").Copy Destination:=Range("C4")

End Sub ’Copyメソッド

Sub Sample10()Range("B2").ClearContents

End Sub ‘ClearContentsメソッド

2.《セルの操作》セル(B2)をコピーして、セル(C4)に貼り付け

2.《セルの操作》セル(B2)の値のみクリア

Sub 複数ステートメントの組み合わせ()Dim i As Long ’変数(i)宣言For i = 2 To 7 ’For…Nextステートメント

If Cells(i, 2) > Cells(i, 1) ThenCells(i, 3) = "増加"

End IfNext i

End Sub

’Ifステートメント

Sub Sample17 ()Dim i As Long ‘変数(i)宣言For i = 1 To 20 Step2 ‘For…NextステートメントRange(Cells(i, 1), Cells(i, 4)).Interior.ColorIndex = 15Next i

End Sub

2.《セルの操作》セル(A1:D20)を1行おきに塗りつぶし

’RangeとCellsで指定する

Page 4: web.tac-school.co.jpweb.tac-school.co.jp/it/pc/pdf/vba-tugaku.pdfRange("B2").Copy Destination:=Range("C4") End Sub ’Copyメソッド Sub Sample10() Range("B2").ClearContents End

(通学のみ)

5.《シートの操作》アクティブシートのシート名をInputBoxを使用して、変更する。実行できたら「名前を変更しました」、実行できなければ「その名前は使用できません」とメッセージを表示

Sub Sample20()Dim NewName As String ’変数(NewName)宣言NewName = InputBox(“新しいシート名は?”) ’ InputBox関数

On Error Resume NextActiveSheet.Name = NewName ’ NameプロパティIf ActiveSheet.Name = NewName Then

MsgBox “名前を変更しました” ’ MsgBox関数Else

MsgBox "その名前は使用できません"End If

End Sub

’ On Errorステートメント(スタンダードの内容)

’ Ifステートメント

Sub Sample5()Dim Target As String ’変数(Target)宣言Target = Application.GetOpenFilename("Excelブック,*.xlsx")If Target <> "False" Then

Workbooks.Open TargetElse

MsgBox “キャンセルされました” ’ MsgBox関数End If

End Sub

’ GetOpenFilenameメソッド

5.《ブックの操作》「ファイルを開く」ダイアログボックスにExcelファイルだけを表示して、開く。開かない場合は、「キャンセルされました」とメッセージを表示

Sub Sample29()Dim i As Long ’変数(i)宣言For i = 1 To 4 ’For…Nextステートメント

Cells(i, 2) = Left(Cells(i, 1), InStr(Cells(i, 1), " ") - 1)Cells(i, 3) = Mid(Cells(i, 1), InStr(Cells(i, 1), " ") + 1)

NextEnd Sub

‘Left関数、Mid関数、InStr関数

4.《関数》スペースで区切られた名前を前後で分割する

Page 5: web.tac-school.co.jpweb.tac-school.co.jp/it/pc/pdf/vba-tugaku.pdfRange("B2").Copy Destination:=Range("C4") End Sub ’Copyメソッド Sub Sample10() Range("B2").ClearContents End

(通学のみ)

回数 180分×8回

通常受講料 ¥72,000

講座内容 配列、イベント、関数などを組み合わせて記述。UserForm,APIなど

前提条件 Excelベーシックレベル修了または同等レベルの方

カリキュラム

1. プロシージャ

2. 変数と配列

3. イベント

4. ステートメント

5. 関数

6. エラーへの対応

7. UserForm

8. メニューの操作

9. Windowsの機能を利用

10. レジストリの操作

11. ファイルの操作

【コース概要】VBAを効率的に利用し、汎用的なプログラムを組むことができる。

Sub Sample3() ‘Sub プロシージャ(Sample3)を実行Dim i As Long ‘変数(i)宣言For i = 2 To 5 ‘For…Next(2~5行目まで繰り返し)

Cells(i, 2).Value = Tax(Cells(i, 1).Value)Next

End Sub

Function Tax(Num As Long) As LongTax = Num * 1.08

End Function

‘ TaxでFunctionプロシージャを呼び出し、結果を呼び出し元に返します。

Private Sub Workbook_BeforeClose(Cancel As Boolean)‘ WorkbookオブジェクトのBeforeCloseイベントIf Worksheets("sheet1").Range("A1").Value = "" Then

Worksheets("sheet1").SelectRange("A1").ActivateMsgBox "sheet1のセルA1が空欄です"Cancel = True ‘閉じる

End IfEnd Sub

Private Sub Workbook_NewSheet(ByVal Sh As Object)Dim buf As String, s As Worksheet, flag As Booleanbuf = Format(Now, "yyyy年m月")For Each s In Worksheets

If s.Name = buf Thenflag = True

End IfNext sIf flag = False Then Sh.Name = buf

End Sub

‘ For Each…Next(すべてのワークシートに実行)

‘ flag= false シート名(年月)がない場合は、シート名をbuf(年月)に変更

3.《ブックのイベント》4.《ステートメント》新しいシートを追加した時に、今日に対する「年月」のシートがなければその名前で追加するが、あれば名前を変更しないで通常通りシートを追加する。

1.《Functionプロシージャ》セル(A2:A5)の金額をもとに税込金額をセル(B2:B5)に表示

3.《ブックのイベント》「sheet1」のセル(A1)が空欄のときは、メッセージを表示し、ブックを閉じさせない。

Page 6: web.tac-school.co.jpweb.tac-school.co.jp/it/pc/pdf/vba-tugaku.pdfRange("B2").Copy Destination:=Range("C4") End Sub ’Copyメソッド Sub Sample10() Range("B2").ClearContents End

(通学のみ)

Sub Sample5_3()Dim buf As StringOn Error GoTo myError‘On Errorステートメント

buf = InputBox("新しいシート名は?")Sheets("Sheet1").Name = bufExit Sub ‘Exitステートメント

myError:Select Case Err.NumberCase 9 ‘Select Caseステートメント

MsgBox "Sheet1が存在しません"Case 1004 ‘エラー番号1004は2つあるので、Ifステートメントで分岐処理

If InStr(Err.Description, "次の点を確認して") > 0 ThenMsgBox “不正な文字が含まれています”

ElseMsgBox "同じシートがすでに存在します"

End If

Case ElseMsgBox _"想定しないエラーです"

End SelectEnd Sub

Sub Sample13()Dim buf As Stringbuf = Dir("C:¥Sample¥*.xlsx")

Do While buf <> ""MsgBox bufbuf = Dir()

LoopEnd Sub

6.《エラーへの対応》「Sheet1」のシート名をInputBoxを使用して変更する。もしもエラーが出た場合は、下記のエラー内容に応じてメッセージを表示する1.ブック内に「Sheet1」が存在しない(Case 9)→「Sheet1」が存在しません。

2.新しいシート名に使用できない文字がある(Case1004)→「不正な文字が含まれています」

3.新しいシート名がすでに存在する(Case1004)→「想定しないエラーです」

Declare Function SHFileOperation Lib "shell32.dll" _(lpFileOp As SHFILEOPSTRUCT) As Long

'SHFileOperation関数に渡すユーザー定義型Type SHFILEOPSTRUCT

hwnd As LongwFunc As LongpFrom As StringpTo As StringfFlags As IntegerfAnyOperationsAborted As LonghNameMappings As LonglpszProgressTitle As String

End Type

Sub Sample6()Dim SH As SHFILEOPSTRUCT, re As LongWith SH

.hwnd = Application.hwnd

.wFunc = &H3

.pFrom = "C:¥temp¥Sample.txt"

.fFlags = &H40End Withre = SHFileOperation(SH)

End Sub

9.《Windowsの機能を利用》APIを使用して、Excelの機能ではない、ゴミ箱へファイルを移動する

‘InStr関数でエラーメッセージに文字列が含まれるか検索する

‘ごみ箱に移動する為のAPIで、宣言セクションに記述する

‘Sampleテキストファイルを削除(ゴミ箱へ移動)する

11.《ファイルの操作》「C:Sample」フォルダ内にあるすべてのExcelファイル(.xlsx)をMsgBoxに表示する

‘Dir関数‘Do…Loopステートメント