SlideShare a Scribd company logo
最強の Excel VBA 講座
業務効率化のプロが教える
基礎
イントロダクション
1
講師プロフィール
2
Copyright © 日本頭脳株式会社 All rights reserved.
講師プロフィール
V-CO N
VBA Consulting
EXcel
ercise
エクセル
本舗
日本頭脳株式会社 代表取締役。ITコーディネータ、調理師。世
界最大級のコンサルティングファームであるプライスウォーターハ
ウスクーパース出身のたたき上げITコンサルタント。10年以上に
わたり大企業向けの業務改革プロジェクトをリード。オフィスワー
クの生産性向上実現をコンセプトとして事業を展開している。
永井 雅明
業務改善コンサルティング
高度IT業務アウトソーシング
高度IT人材育成
Copyright © 日本頭脳株式会社 All rights reserved.
事業コンセプトイメージ
4
仕様策定から任せられる
日本頭脳の実力
V-CON
VBA Consulting
Copyright © 日本頭脳株式会社 All rights reserved.
事業コンセプトイメージ
5
V-CON
VBA Consulting
V BAで
業務にイノベーションを
Copyright © 日本頭脳株式会社 All rights reserved.
実績
6
✓業務改善コンサルタント歴15年。
✓プロジェクトマネージャー経験7回。
✓全社システム導入会社数10社。
✓システム規模最大6,000ユーザ。
✓画面設計数500以上。
✓データベース(テーブル)設計数1,500以上。
講座の進め方
7
Copyright © 日本頭脳株式会社 All rights reserved.
スパイラル学習
目
的
の
処
理
(
日
本
語
)
V
B
A
プ
ロ
グ
ラ
ム
(
機
械
語
)
知識のインプット 実習(ワーク)
知識のインプット 実習(ワーク)
知識のインプット 実習(ワーク)
知識のインプット 実習(ワーク)
知識のインプット 実習(ワーク)
全体像を捉えながら、目的の処理を段階的に作成していくアプローチ
8
本日のスケジュール
9
1. イントロダクション 5分
2. 勤務表データチェック<前半戦> 60分 ワーク1:ボタンを作る
ワーク2:ボタンから処理を呼び出す
ワーク3:セルの色を変える
ワーク4:処理から処理を呼び出す
ワーク5:分岐処理を行う
・・休憩・・ 5分
3. 勤務表データチェック<後半戦> 60分 ワーク6:引数・戻り値を理解する(1)
ワーク7:繰り返し処理を行う
ワーク8:関数の使い方を理解する
ワーク9:動作確認
・・休憩・・ -
4. オプション講義 30分 ワーク10:変数を理解する
ワーク11:引数・戻り値を理解する(2)
ワーク12:Withを使いこなす
5. ステップアップ講座のご案内・
アンケート
10分
Copyright © 日本頭脳株式会社 All rights reserved.
講義中のルール
講義中の質問OK
疲れたら手を休めてOK
ついてこれない場合は休憩中にフォロー
トイレ休憩はご自由に
携帯電話・スマートフォンは音が鳴らないように
10
勤務表データチェック
<前半戦>
11
VBAを使って実現したいこと
12
Copyright © 日本頭脳株式会社 All rights reserved.
<全体像>勤務表データを確認しよう
<入力ルールを確認>
• 時刻の時と分は「:」区切り 例)11:00
• 開始時刻と終了時刻は「~」区切り 例) 9:30~14:00
13
時間帯の両側に文字が混入していないか
チェックするプログラムを作成する
9:30~14:00
Copyright © 日本頭脳株式会社 All rights reserved.
<全体像>処理の内容を理解しよう
'*****************************************
'* エラーチェック処理
'*****************************************
'最初に、セルの色をクリアする
'処理開始の確認メッセージを表示する
'キャンセルされた場合は、処理を終了する
'勤務表シートのC5:M35範囲内で、セル1つずつ繰り返し処理を行う
'セルの値の有無により、分岐処理を行う
'値がある場合
'セルの値を表示する
'文字の両端が数値でない場合、セルの色を赤にする
'それ以外の場合は、セルの色をクリアする
'値がない場合
'セルの色を薄いグレーにする
勤務表データに、時間以外の文字が混入していないかチェックする
エラーの場合は赤、空欄の場合は薄いグレーにし、エラーがない場合は色をクリアする
14
Copyright © 日本頭脳株式会社 All rights reserved.
<全体像>処理の流れを理解しよう
ボタンを配置
エラーチェック
処理
15
プログラムを書く準備
16
Copyright © 日本頭脳株式会社 All rights reserved.
開発タブを表示する
「開発」タブが表
示されていない
17
Copyright © 日本頭脳株式会社 All rights reserved.
開発タブを表示する
ファイル>オプション>リボンのユーザー設定
18
知識
「開発」にチェック
Copyright © 日本頭脳株式会社 All rights reserved.
VBEを表示する
Visual Basic
19
知識
Copyright © 日本頭脳株式会社 All rights reserved.
VBEを表示する
プロパティウィンドウ イミディエイトウィンドウ ローカルウィンドウ ウォッチウィンドウ
プロジェクトエクスプローラー(オブジェクトの一覧)
20
知識
Copyright © 日本頭脳株式会社 All rights reserved.
プログラムを書く場所を表示する(1)
ダブルクリック
21
Copyright © 日本頭脳株式会社 All rights reserved.
プログラムを書く場所を表示する(2)
22
Copyright © 日本頭脳株式会社 All rights reserved.
参考)モジュールの違い
▼オブジェクトにくっつく
 シートモジュール
 ブックモジュール
 フォームモジュール
↓
イベントが起こせる
エラー箇所を特定できない
▼オブジェクトにくっつかない
 標準モジュール
オブジェクト指向の設計は不要
インスタンス化できない
スコープが広い
 クラスモジュール
オブジェクト指向の設計が必要
インスタンス化できる
スコープが狭い
初心者
向き
プログラマー
向き
イベントを
起こすときに
使う
23
ワーク1:ボタンを作る
24
Copyright © 日本頭脳株式会社 All rights reserved.
ボタンを配置しよう
開発タブ>挿入>ボタン(フォーム コントロール)
25
左上
ワーク
Copyright © 日本頭脳株式会社 All rights reserved.
ボタンの形を作ろう
26
+アイコンが表示されるので、
右下方向にドラッグする
+
ワーク
Copyright © 日本頭脳株式会社 All rights reserved. 27
マクロの登録
開発タブ>挿入>ボタン(フォーム コントロール)>マクロの登録>新規作成
ワーク
Copyright © 日本頭脳株式会社 All rights reserved. 28
2つの画面を意識しよう
Excel(表)
開発用の画面
VBE
(Visual Basic Editor)
Copyright © 日本頭脳株式会社 All rights reserved. 29
ボタンのラベルを変更しよう
Excel>ボタンを右クリック>テキストの編集
ボタン以外のところをクリック
すると、文字が確定する
ワーク
Copyright © 日本頭脳株式会社 All rights reserved.
シートモジュール
ブックモジュール
標準モジュール
30
参考)シート・ブック・標準モジュールの違い
使わない理由
その1:Publicが使えない
その2:エラー箇所が不明
ワーク2:ボタンから処理を呼び出す
31
Copyright © 日本頭脳株式会社 All rights reserved.
プロシージャとは
プロシージャ(Procedure)=ひとまとまりの処理
Function 処理名()
・・・・・・・
・・・・・・・
・・・・・・・
End Function
Sub 処理名()
・・・・・・・
・・・・・・・
・・・・・・・
End Sub
プロシージャは、標準プロシージャとイベントプロシージャに分類される。
FunctionもSubも標準プロシージャに分類されるが、Subは適用範囲が狭い。
「Sub」は「Subroutine(サブルーチン)」の略で、戻り値を返せない片道切符の処理のこと。
半角スペース
32
知識
Copyright © 日本頭脳株式会社 All rights reserved. 33
ボタンクリック時の処理
Sub ボタン1_Click()
End Sub
何も書かれていない
ボタンをクリックしても、
何も起きない
Copyright © 日本頭脳株式会社 All rights reserved.
メッセージを表示する
34
Msgbox “メッセージ”, 表示形式
vbOKCancel vbCritical vbYesNoCancel
※表示形式に何も入力しないと、OKボタンだけ表示される
ダブルクォーテーション
知識
Copyright © 日本頭脳株式会社 All rights reserved. 35
便利機能を活用しよう
カンマ「,」を入力した瞬間
に、候補が表示される
↑↓で選んでTAB
(またはダブルクリック)
MsgBox+スペースを入力す
ると、入力補助が表示される
知識
Copyright © 日本頭脳株式会社 All rights reserved. 36
メッセージを表示しよう
Sub ボタン1_Click()
MsgBox "処理を開始します。よろしいですか?", vbOKCancel
End Sub
書き終わったら、ボタンを
クリックしてみよう
ワーク
Copyright © 日本頭脳株式会社 All rights reserved. 37
メッセージを表示しよう ワーク
ワーク3:セルの色を変える
38
Copyright © 日本頭脳株式会社 All rights reserved.
<全体像>処理の内容
'*****************************************
'* エラーチェック処理
'*****************************************
'最初に、セルの色をクリアする
'処理開始の確認メッセージを表示する
'キャンセルされた場合は、処理を終了する
'勤務表シートのC5:M35範囲内で、セル1つずつ繰り返し処理を行う
'セルの値の有無により、分岐処理を行う
'値がある場合
'セルの値を表示する
'文字の両端が数値でない場合、セルの色を赤にする
'それ以外の場合は、セルの色をクリアする
'値がない場合
'セルの色を薄いグレーにする
勤務表データに、時間以外の文字が混入していないかチェックする
エラーの場合は赤、空欄の場合は薄いグレーにし、エラーがない場合は色をクリアする
39
Copyright © 日本頭脳株式会社 All rights reserved. 40
Functionを書いてみよう
Sub ボタン1_Click()
MsgBox "処理を開始します。よろしいですか?", vbOKCancel
End Sub
'**********************************************
'* エラーチェック処理
'**********************************************
Function エラーチェック処理()
End Function
ワーク
Copyright © 日本頭脳株式会社 All rights reserved. 41
コメントを書く
Sub ボタン1_Click()
MsgBox "処理を開始します。よろしいですか?", vbOKCancel
End Sub
'**********************************************
'* エラーチェック処理
'**********************************************
知識
シングルクォーテーション「’」を付けるとコメントになる
例)
Copyright © 日本頭脳株式会社 All rights reserved. 42
コメントを書いてみよう
'**********************************************
'* エラーチェック処理
'**********************************************
Function エラーチェック処理()
'最初に、セルの色をクリアする
End Function
ワーク
Copyright © 日本頭脳株式会社 All rights reserved. 43
命令の仕方
どのシートの、どのセルの、何を、このように変えなさい
シート.セル.〇〇〇 = 値(色)
知識
Copyright © 日本頭脳株式会社 All rights reserved. 44
何を変えるのか
どのシート? Sheets(“シート名”)
どのセル?
範囲を指定 Range(“範囲”)
特定セルを指定 Cells(行番号,列番号)
何を変える?
値を変えるなら Value
色を変えるなら Interior.ColorIndex
Sheets(“シート名”). Range(“範囲”).Value
知識
どのシートの、どのセルの、何を、このように変えなさい
Copyright © 日本頭脳株式会社 All rights reserved.
セルの指定方法
セルの範囲指定方法は2種類ある
Range(“範囲”) Cells(行番号,列番号)
Range(“B2:C3”) Cells(2,3)
45
知識
行や列を順番に処理していくとき、数値
だと足し算ができるので使いやすい
Excelシートの表示形式と同じ表示なの
で、ぱっと見てわかりやすい
Copyright © 日本頭脳株式会社 All rights reserved. 46
どう変えるのか
値を「100」に変える ~.Value=100
値を「あいう」に変える ~.Value=”あいう”
色を「赤」に変える ~.Interior.ColorIndex=3
色をクリアする ~.Interior.ColorIndex=0
色を「薄いグレー」に変える
~.Interior.Color
=RGB(217, 217, 217)
知識
どのシートの、どのセルの、何を、このように変えなさい
Copyright © 日本頭脳株式会社 All rights reserved.
セルの色の変え方
色の指定方法は2種類ある
ColorIndex Color
黒 1
白 2
赤 3
緑 4
青 5
:
47
知識
黒 RGB(0,0,0)
白 RGB(255,255,255)
:
あらかじめ
決められた色
自由に指定
Copyright © 日本頭脳株式会社 All rights reserved. 48
セルの色を変えてみよう
'**********************************************
'* エラーチェック処理
'**********************************************
Function エラーチェック処理()
'最初に、セルの色をクリアする
Sheets("勤務表").Range("C5:M35").Interior.ColorIndex = 3
End Function
「3」「4」「5」など試してみる
ワーク
Copyright © 日本頭脳株式会社 All rights reserved. 49
プログラムを単独で実行してみよう
'**********************************************
'* エラーチェック処理
'**********************************************
Function エラーチェック処理()
'最初に、セルの色をクリアする
Sheets("勤務表").Range("C5:M35").Interior.ColorIndex = 3
End Function
赤枠内のどこかをクリックして、F5を押す
ワーク
Copyright © 日本頭脳株式会社 All rights reserved.
補足)メニューボタン
実行(F5)
中止
「■」ボタンは、正しくは「リセット」という
「Ctrl+Break」がない場合は、「Winロゴキー+U」から「スクリーンボード」を使って入力
中断
「F5」で実行、「Ctrl+Break」で中断、は覚えておく!
知識
ワーク4:処理から処理を呼び出す
51
Copyright © 日本頭脳株式会社 All rights reserved.
処理を呼び出す
Call 処理名
52
知識
Copyright © 日本頭脳株式会社 All rights reserved. 53
処理を呼び出してみよう
Sub ボタン1_Click()
Call エラーチェック処理
End Sub
'**********************************************
'* エラーチェック処理
'**********************************************
Function エラーチェック処理()
'最初に、セルの色をクリアする
Sheets("勤務表").Range("C5:M35").Interior.ColorIndex = 0
MsgBox "処理を開始します。よろしいですか?", vbOKCancel
End Function
ボタンをクリックして確認!
ワーク
メッセージ表示処理を
移動
「0」にする
ワーク5:分岐処理を行う
54
Copyright © 日本頭脳株式会社 All rights reserved.
<全体像>処理の内容
'*****************************************
'* エラーチェック処理
'*****************************************
'最初に、セルの色をクリアする
'処理開始の確認メッセージを表示する
'キャンセルされた場合は、処理を終了する
'勤務表シートのC5:M35範囲内で、セル1つずつ繰り返し処理を行う
'セルの値の有無により、分岐処理を行う
'値がある場合
'セルの値を表示する
'文字の両端が数値でない場合、セルの色を赤にする
'それ以外の場合は、セルの色をクリアする
'値がない場合
'セルの色を薄いグレーにする
勤務表データに、時間以外の文字が混入していないかチェックする
エラーの場合は赤、空欄の場合は薄いグレーにし、エラーがない場合は色をクリアする
55
Copyright © 日本頭脳株式会社 All rights reserved.
分岐処理
分岐の書き方は2種類ある
If 条件 Then
・・・・・・・
Else
・・・・・・・
End If
Select Case 変数
Case 値1
Case 値2
Case Else
End Select
順位が3位以上ならメダル
をください。
順位が1位なら金を、2位
なら銀をください。
「If」は、値の大小を比較する場合なども含めて幅広く使用できる。
「Select Case」は、値が一致する場合にのみ使用する。
知識
Copyright © 日本頭脳株式会社 All rights reserved. 57
条件の書き方
値が100の場合 .Value=100
値が100を超える場合 .Value>100
値が100以下の場合 .Value<=100
値がない場合 .Value=””
値がある場合 .Value<>””
=値が空ではない場合
知識
空であることを示す
ノット・イコールを示す
Copyright © 日本頭脳株式会社 All rights reserved. 58
分岐処理を書いてみよう
Function エラーチェック処理()
'最初に、セルの色をクリアする
Sheets("勤務表").Range("C5:M35").Interior.ColorIndex = 0
'勤務表シートのD5セルの値の有無により、分岐処理を行う
'値がある場合
'値がない場合
'セルの色を薄いグレーにする
End Function
• まずは、コメントで処理を書く
• 終わったら、分岐処理だけ書く
ワーク
• 「勤務表シートのD5セルの値」は?
• 値がない場合=値が空ではない場合
Copyright © 日本頭脳株式会社 All rights reserved. 59
分岐処理を書いてみよう
Function エラーチェック処理()
'最初に、セルの色をクリアする
Sheets("勤務表").Range("C5:M35").Interior.ColorIndex = 0
'勤務表シートのD5セルの値の有無により、分岐処理を行う
'値がある場合
If Sheets("勤務表").Range(“D5").Value <> "" Then
‘セルの値を表示する
'値がない場合
Else
'セルの色を薄いグレーにする
End If
End Function
ワーク
Copyright © 日本頭脳株式会社 All rights reserved.
値の表示
Debug.Print 値
表示>イミディエイトウィンドウ
プログラムが正しく動いているかを確認する
ために、開発途中でよく使う
イミディエイトウィンドウ
知識
Copyright © 日本頭脳株式会社 All rights reserved. 61
セルの値を表示してみよう
Function エラーチェック処理()
'最初に、セルの色をクリアする
Sheets("勤務表").Range("C5:M35").Interior.ColorIndex = 0
'勤務表シートのD5セルの値の有無により、分岐処理を行う
'値がある場合
If Sheets("勤務表").Range(“D5").Value <> "" Then
'セルの値を表示する
'値がない場合
Else
'セルの色を薄いグレーにする
End If
End Function
ワーク
Copyright © 日本頭脳株式会社 All rights reserved. 62
セルの値を表示してみよう
Function エラーチェック処理()
'最初に、セルの色をクリアする
Sheets("勤務表").Range("C5:M35").Interior.ColorIndex = 0
'勤務表シートのD5セルの値の有無により、分岐処理を行う
'値がある場合
If Sheets("勤務表").Range(“D5").Value <> "" Then
‘セルの値を表示する
Debug.Print Sheets("勤務表").Range(“D5").Value
'値がない場合
Else
'セルの色を薄いグレーにする
End If
End Function
ワーク
Copyright © 日本頭脳株式会社 All rights reserved. 63
セルの色を変えてみよう
Function エラーチェック処理()
'最初に、セルの色をクリアする
Sheets("勤務表").Range("C5:M35").Interior.ColorIndex = 0
'勤務表シートのD5セルの値の有無により、分岐処理を行う
'値がある場合
If Sheets("勤務表").Range(“D5").Value <> "" Then
‘セルの値を表示する
Debug.Print Sheets("勤務表").Range(“D5").Value
'値がない場合
Else
'セルの色を薄いグレーにする
End If
End Function
ここでは、「.Interior.Color」を使う
薄いグレーはRGB(217, 217, 217)
ワーク
Copyright © 日本頭脳株式会社 All rights reserved. 64
セルの色を変えてみよう
Function エラーチェック処理()
'最初に、セルの色をクリアする
Sheets("勤務表").Range("C5:M35").Interior.ColorIndex = 0
'勤務表シートのD5セルの値の有無により、分岐処理を行う
'値がある場合
If Sheets("勤務表").Range(“D5").Value <> "" Then
‘セルの値を表示する
Debug.Print Sheets("勤務表").Range(“D5").Value
'値がない場合
Else
'セルの色を薄いグレーにする
Sheets("勤務表").Range(“D5").Interior.Color = RGB(217, 217, 217)
End If
End Function
ワーク
65
B r e a k T i m e
勤務表データチェック
<後半戦>
66
ワーク6:引数・戻り値を理解する(1)
67
Copyright © 日本頭脳株式会社 All rights reserved. 68
引数・戻り値とは
引数
(インプット)
戻り値
(アウトプット)
処理
知識
Copyright © 日本頭脳株式会社 All rights reserved. 69
引数・戻り値の例
Today()なし 今日の日付
SUM(…)範囲 合計値
MsgBox(…)テキスト 押されたボタン
引数 戻り値処理
知識
Copyright © 日本頭脳株式会社 All rights reserved. 70
引数・戻り値の例
表示テキスト
表示形式
引数 戻り値処理
MsgBox(…)
押されたボタンの値
・OKをクリック
→1(vbOK)
・Cancelをクリック
→2(vbCancel)
知識
Copyright © 日本頭脳株式会社 All rights reserved. 71
メッセージで選択された値を取得する
メッセージを表示するだけなら
MsgBox “メッセージ”, 表示形式
メッセージを表示して、さらに値を取得するなら
MsgBox(“メッセージ”, 表示形式)
OKをクリック →vbOK
Cancelをクリック →vbCancel
知識
Copyright © 日本頭脳株式会社 All rights reserved. 72
分岐処理とメッセージの組み合わせ
もし、メッセージの値が「キャンセル」なら、そのときは
・・・
以上
If MsgBox(“メッセージ”, 表示形式) = vbCancel Then
・・・
End If
知識
Copyright © 日本頭脳株式会社 All rights reserved. 73
復習)条件
値が100の場合 .Value=100
値が100を超える場合 .Value>100
値が100以下の場合 .Value<=100
値がない場合 .Value=””
値が空ではない場合 .Value<>””
知識
Copyright © 日本頭脳株式会社 All rights reserved.
<全体像>処理の内容
'*****************************************
'* エラーチェック処理
'*****************************************
'最初に、セルの色をクリアする
'処理開始の確認メッセージを表示する
'キャンセルされた場合は、処理を終了する
'勤務表シートのC5:M35範囲内で、セル1つずつ繰り返し処理を行う
'セルの値の有無により、分岐処理を行う
'値がある場合
'セルの値を表示する
'文字の両端が数値でない場合、セルの色を赤にする
'それ以外の場合は、セルの色をクリアする
'値がない場合
'セルの色を薄いグレーにする
勤務表データに、時間以外の文字が混入していないかチェックする
エラーの場合は赤、空欄の場合は薄いグレーにし、エラーがない場合は色をクリアする
74
• メッセージを表示する
• メッセージで選択された値を取得する
• 値によって分岐処理をする
Copyright © 日本頭脳株式会社 All rights reserved. 75
メッセージによる分岐処理を書いてみよう
'**********************************************
'* エラーチェック処理
'**********************************************
Function エラーチェック処理()
'最初に、セルの色をクリアする
Sheets("勤務表").Range("C5:M35").Interior.ColorIndex = 0
'処理開始の確認メッセージを表示する
:
End Function
ワーク
Copyright © 日本頭脳株式会社 All rights reserved. 76
メッセージによる分岐処理を書いてみよう
'**********************************************
'* エラーチェック処理
'**********************************************
Function エラーチェック処理()
'最初に、セルの色をクリアする
Sheets("勤務表").Range("C5:M35").Interior.ColorIndex = 0
'処理開始の確認メッセージを表示する
If MsgBox("処理を開始します。よろしいですか?", vbOKCancel) = vbCancel Then
End If
:
End Function
ワーク
Copyright © 日本頭脳株式会社 All rights reserved.
処理の終了
Exit Function
Function 処理名()
Exit Function
End Function
これ以降の処理は実行されない
ここまでの処理は実行される
知識
Copyright © 日本頭脳株式会社 All rights reserved. 78
処理の終了を書いてみよう
'**********************************************
'* エラーチェック処理
'**********************************************
Function エラーチェック処理()
'最初に、セルの色をクリアする
Sheets("勤務表").Range("C5:M35").Interior.ColorIndex = 0
'処理開始の確認メッセージを表示する
If MsgBox("処理を開始します。よろしいですか?", vbOKCancel) = vbCancel Then
'キャンセルされた場合は、処理を終了する
End If
:
End Function
ワーク
Copyright © 日本頭脳株式会社 All rights reserved. 79
処理の終了を書いてみよう
'**********************************************
'* エラーチェック処理
'**********************************************
Function エラーチェック処理()
'最初に、セルの色をクリアする
Sheets("勤務表").Range("C5:M35").Interior.ColorIndex = 0
'処理開始の確認メッセージを表示する
If MsgBox("処理を開始します。よろしいですか?", vbOKCancel) = vbCancel Then
'キャンセルされた場合は、処理を終了する
Exit Function
End If
:
End Function
ボタンクリックで確認
ワーク
ワーク7:繰り返し処理を行う
80
Copyright © 日本頭脳株式会社 All rights reserved.
<全体像>処理の内容
'*****************************************
'* エラーチェック処理
'*****************************************
'最初に、セルの色をクリアする
'処理開始の確認メッセージを表示する
'キャンセルされた場合は、処理を終了する
'勤務表シートのC5:M35範囲内で、セル1つずつ繰り返し処理を行う
'セルの値の有無により、分岐処理を行う
'値がある場合
'セルの値を表示する
'文字の両端が数値でない場合、セルの色を赤にする
'それ以外の場合は、セルの色をクリアする
'値がない場合
'セルの色を薄いグレーにする
勤務表データに、時間以外の文字が混入していないかチェックする
エラーの場合は赤、空欄の場合は薄いグレーにし、エラーがない場合は色をクリアする
81
Copyright © 日本頭脳株式会社 All rights reserved.
繰り返し処理(ループ)
繰り返し処理の書き方は、大きく分けて2種類ある
For
・・・・・・・
・・・・・・・
・・・・・・・
Next
Do While 実行条件
・・・・・・・
・・・・・・・
・・・・・・・
Loop
1行目から10行目まで
計算してください
行数が100未満の間は
ずっと計算してください
「Do While」は、指定した条件を満たさないと永遠に処理をし続けるという、
いわゆる「無限ループ」を起こしやすいため、「For」のほうが安全性が高い。
82
知識
Copyright © 日本頭脳株式会社 All rights reserved.
繰り返し処理(ループ)
Forの書き方は2種類ある
For 始点 To 終点
・・・・・・・
・・・・・・・
・・・・・・・
Next
For each 要素 In 範囲
・・・・・・・
・・・・・・・
・・・・・・・
Next
1行目から10行目まで
計算してください
A1:D8の中にあるセル1個ずつ
この文書の中にある図形1個ずつ
「Do While」は、指定した条件を満たさないと永遠に処理をし続けるという、
いわゆる「無限ループ」を起こしやすいため、「For」のほうが安全性が高い。
83
知識
Copyright © 日本頭脳株式会社 All rights reserved. 84
For each の使い方
‘勤務表シートのC5:M35範囲内で、セル1つずつ・・
For each cell In Sheets("勤務表").Range("C5:M35")
・・・・・・・
・・・・・・・
・・・・・・・
Next
• 名前は何でもよい
• 次々に値が変わっていくので「変数」という
cell
知識
Copyright © 日本頭脳株式会社 All rights reserved. 85
Forループを書いてみよう
Function エラーチェック処理()
:
'勤務表シートのC5:M35範囲内で、セル1つずつ繰り返し処理を行う
'勤務表シートのD5セルの値の有無により、分岐処理を行う
'値がある場合
If Sheets("勤務表").Range("D5").Value <> "" Then
'セルの値を表示する
Debug.Print Sheets("勤務表").Range("D5").Value
'値がない場合
Else
'セルの色を薄いグレーにする
Sheets("勤務表").Range("D5").Interior.Color = RGB(217, 217, 217)
End If
End Function
ワーク
Copyright © 日本頭脳株式会社 All rights reserved. 86
Forループを書いてみよう
Function エラーチェック処理()
:
'勤務表シートのC5:M35範囲内で、セル1つずつ繰り返し処理を行う
For Each cell In Sheets("勤務表").Range("C5:M35")
'勤務表シートのD5セルの値の有無により、分岐処理を行う
'値がある場合
If Sheets("勤務表").Range("D5").Value <> "" Then
'セルの値を表示する
Debug.Print Sheets("勤務表").Range("D5").Value
'値がない場合
Else
'セルの色を薄いグレーにする
Sheets("勤務表").Range("D5").Interior.Color = RGB(217, 217, 217)
End If
Next
End Function
ワーク
Copyright © 日本頭脳株式会社 All rights reserved. 87
既存のプログラムを、Forループの中に入れてみよう
Function エラーチェック処理()
:
'勤務表シートのC5:M35範囲内で、セル1つずつ繰り返し処理を行う
For Each cell In Sheets("勤務表").Range("C5:M35")
'勤務表シートのD5セルの値の有無により、分岐処理を行う
'値がある場合
If Sheets("勤務表").Range("D5").Value <> "" Then
'セルの値を表示する
Debug.Print Sheets("勤務表").Range("D5").Value
'値がない場合
Else
'セルの色を薄いグレーにする
Sheets("勤務表").Range("D5").Interior.Color = RGB(217, 217, 217)
End If
Next
End Function
cell.Interior.ColorIndex
cell.Value
ワーク
Copyright © 日本頭脳株式会社 All rights reserved. 88
既存のプログラムを、Forループの中に入れてみよう
Function エラーチェック処理()
:
'勤務表シートのC5:M35範囲内で、セル1つずつ繰り返し処理を行う
For Each cell In Sheets("勤務表").Range("C5:M35")
'勤務表シートのD5セルの値の有無により、分岐処理を行う
'値がある場合
If cell.Value <> "" Then
'セルの値を表示する
Debug.Print cell.Value
'値がない場合
Else
'セルの色を薄いグレーにする
cell.Interior.Color = RGB(217, 217, 217)
End If
Next
End Function
Sheets("勤務表").Range("D5")
↓
cell
コメントも修正しておこう
ワーク
ワーク8:関数の使い方を理解する
89
Copyright © 日本頭脳株式会社 All rights reserved.
<全体像>処理の内容
'*****************************************
'* エラーチェック処理
'*****************************************
'最初に、セルの色をクリアする
'処理開始の確認メッセージを表示する
'キャンセルされた場合は、処理を終了する
'勤務表シートのC5:M35範囲内で、セル1つずつ繰り返し処理を行う
'セルの値の有無により、分岐処理を行う
'値がある場合
'セルの値を表示する
'文字の両端が数値でない場合、セルの色を赤にする
'それ以外の場合は、セルの色をクリアする
'値がない場合
'セルの色を薄いグレーにする
勤務表データに、時間以外の文字が混入していないかチェックする
エラーの場合は赤、空欄の場合は薄いグレーにし、エラーがない場合は色をクリアする
90
Copyright © 日本頭脳株式会社 All rights reserved.
さまざまな関数
91
左側から指定した文字数を抽出 Left(文字列,文字数)
例)Left(“あいうえお”, 1) →戻り値「あ」
右側から指定した文字数を抽出 Right(文字列,文字数)
例)Right(“あいうえお”, 1) →戻り値「お」
知識
質問1.
セルの値(cell.Value)の左側から1文字、はどのように書けばよいですか?
質問2.
セルの値(cell.Value)の右側から1文字、はどのように書けばよいですか?
Copyright © 日本頭脳株式会社 All rights reserved.
さまざまな関数
92
指定した値が数値かどうか判定 IsNumeric(値)
例)IsNumeric(“あ”) →戻り値「False」
例)IsNumeric(1) →戻り値「True」
知識
質問3.
セルの値(cell.Value)の左側から1文字が数値かどうか、はどのように書
けばよいですか?
質問4.
セルの値(cell.Value)の左側から1文字が数値である場合、という分岐処
理はどのように書けばよいですか?
正・誤を表す・・は「数値」で合っていますか?という意味
Copyright © 日本頭脳株式会社 All rights reserved.
条件の組み合わせ
93
AND(~かつ~)
If A = 1 And B = 1 Then
bError = True
End If
OR(~または~)
If A = 1 Or B = 1 Then
bError = True
End If
AもBも、両方とも
1でないといけない
AとBのいずれか一方が
1であればよい
組み合わせ方は2種類ある
知識
Copyright © 日本頭脳株式会社 All rights reserved. 94
条件を組み合わせてみよう
Function エラーチェック処理()
:
'セルの値の有無により、分岐処理を行う
'値がある場合
If cell.Value <> "" Then
'セルの値を表示する
Debug.Print cell.Value
'文字の両端が数値でない場合、セルの色を赤にする
'それ以外の場合は、セルの色をクリアする
'値がない場合
:
ワーク
まずは分岐処理(If~)だけ書いてみよう
Copyright © 日本頭脳株式会社 All rights reserved. 95
条件を組み合わせてみよう
Function エラーチェック処理()
:
'セルの値の有無により、分岐処理を行う
'値がある場合
If cell.Value <> "" Then
'セルの値を表示する
Debug.Print cell.Value
'文字の両端が数値でない場合、セルの色を赤にする
If IsNumeric(Left(cell.Value, 1)) = False Or _
IsNumeric(Right(cell.Value, 1)) = False Then
'それ以外の場合は、セルの色をクリアする
Else
End If
'値がない場合
:
ワーク
Copyright © 日本頭脳株式会社 All rights reserved. 96
条件を組み合わせてみよう
Function エラーチェック処理()
:
'セルの値の有無により、分岐処理を行う
'値がある場合
If cell.Value <> "" Then
'セルの値を表示する
Debug.Print cell.Value
'文字の両端が数値でない場合、セルの色を赤にする
If IsNumeric(Left(cell.Value, 1)) = False Or _
IsNumeric(Right(cell.Value, 1)) = False Then
'それ以外の場合は、セルの色をクリアする
Else
End If
'値がない場合
:
ワーク
.Interior.ColorIndexを使う
(赤は3、クリアは0)
Copyright © 日本頭脳株式会社 All rights reserved. 97
条件を組み合わせてみよう
Function エラーチェック処理()
:
'セルの値の有無により、分岐処理を行う
'値がある場合
If cell.Value <> "" Then
'セルの値を表示する
Debug.Print cell.Value
'文字の両端が数値でない場合、セルの色を赤にする
If IsNumeric(Left(cell.Value, 1)) = False Or _
IsNumeric(Right(cell.Value, 1)) = False Then
cell.Interior.ColorIndex = 3
'それ以外の場合は、セルの色をクリアする
Else
cell.Interior.ColorIndex = 0
End If
'値がない場合
:
ワーク
F5で確認
Copyright © 日本頭脳株式会社 All rights reserved.
完成したプログラム
Function エラーチェック処理()
'最初に、セルの色をクリアする
Sheets("勤務表").Range("C5:M35").Interior.ColorIndex = 0
'処理開始の確認メッセージを表示する
If MsgBox("処理を開始します。よろしいですか?", vbOKCancel) = vbCancel Then
'キャンセルされた場合は、処理を終了する
Exit Function
End If
'勤務表シートのC5:M35範囲内で、セル1つずつ繰り返し処理を行う
For Each cell In Sheets("勤務表").Range("C5:M35")
'セルの値の有無により、分岐処理を行う
'値がある場合
If cell.Value <> "" Then
'セルの値を表示する
Debug.Print cell.Value
'文字の両端が数値でない場合、セルの色を赤にする
If IsNumeric(Left(cell.Value, 1)) = False Or _
IsNumeric(Right(cell.Value, 1)) = False Then
cell.Interior.ColorIndex = 3
‘その他の場合は、セルの色をクリアする
Else
cell.Interior.ColorIndex = 0
End If
'値がない場合
Else
'セルの色を薄いグレーにする
cell.Interior.Color = RGB(217, 217, 217)
End If
Next
End Function
98
ワーク9:動作確認
99
Copyright © 日本頭脳株式会社 All rights reserved.
チェックボタンをクリックしてみよう ワーク
Copyright © 日本頭脳株式会社 All rights reserved. 101
実行結果
もう一度ボタンを押すと、
セルの色がクリアされる
データを修正して
もう一度ボタンを押すと、
赤色が表示されなくなる
102
B r e a k T i m e
オプション講義
103
ワーク10:変数を理解する
104
Copyright © 日本頭脳株式会社 All rights reserved.
変数とは
変数=値を格納する「箱」
String = 文字列
Integerは-32,768~32,767の整数を扱える。
ちなみに、Excelで扱える最大行数は1,048,576 行( Excel2007以降)。
ちなみに「Dim」は「Dimension」の略で、FORTRAN言語の名残りと言われている。
Integer = 整数
Boolean = 正誤 Long = 超整数
「s」を文字列として使います→ Dim s As String (宣言)
「s」に値を入れます→ s = “文字です”
「s」を表示します→ MsgBox s
105
知識
Copyright © 日本頭脳株式会社 All rights reserved. 106
変数を使ってみよう①(String)
Function エラーチェック処理()
'文字列を格納する箱「sCell」を宣言する
'勤務表シートのC5:M35範囲内で、セル1つずつ繰り返し処理を行う
For Each cell In Sheets("勤務表").Range("C5:M35")
‘sCellに、cell.Valueを格納する
‘以降、cell.Valueの代わりにsCellを使う
Next
End Function
ワーク
Copyright © 日本頭脳株式会社 All rights reserved. 107
変数を使ってみよう① (String)
Function エラーチェック処理()
‘文字列を格納する箱「sCell」を宣言する
Dim sCell As String
'勤務表シートのC5:M35範囲内で、セル1つずつ繰り返し処理を行う
For Each cell In Sheets("勤務表").Range("C5:M35")
‘sCellに、cell.Valueを格納する
sCell = cell.Value
‘以降、cell.Valueの代わりにsCellを使う
If cell.Value <> "" Then
Debug.Print sCell
If IsNumeric(Left(sCell, 1)) = False Or _
IsNumeric(Right(sCell, 1)) = False Then
:
Next
End Function
ワーク
Copyright © 日本頭脳株式会社 All rights reserved. 108
変数を使ってみよう②(Boolean)
Function エラーチェック処理()
Dim sCell As String
‘正誤を格納する箱「bLeft」「bRight」を宣言する
'勤務表シートのC5:M35範囲内で、セル1つずつ繰り返し処理を行う
For Each cell In Sheets("勤務表").Range("C5:M35")
sCell = cell.Value
‘bLeftに、 IsNumeric(Left(sCell, 1))を格納する
‘bRightに、 IsNumeric(Right(sCell, 1))を格納する
‘以降、IsNumeric~の代わりに、bLeftまたはbRightを使う
Next
End Function
ワーク
Copyright © 日本頭脳株式会社 All rights reserved. 109
変数を使ってみよう②(Boolean)
Function エラーチェック処理()
Dim sCell As String
Dim bLeft As Boolean
Dim bRight As Boolean
'勤務表シートのC5:M35範囲内で、セル1つずつ繰り返し処理を行う
For Each cell In Sheets("勤務表").Range("C5:M35")
sCell = cell.Value
bLeft = IsNumeric(Left(sCell, 1))
bRight = IsNumeric(Right(sCell, 1))
‘以降、IsNumeric~の代わりに、bLeftまたはbRightを使う
If cell.Value <> "" Then
:
'文字の両端が数値でない場合、セルの色を赤にする
If bLeft = False Or bRight = False Then :
Next
End Function
ワーク
Copyright © 日本頭脳株式会社 All rights reserved. 110
動作確認
ボタンを押して、動作が変わって
いないことを確認しよう
ワーク11:引数・戻り値を理解する(2)
111
難しいけど
頑張って理解しよう!
Copyright © 日本頭脳株式会社 All rights reserved.
やりたいこと
処理1
知識
処理を小分けにする(外に出す)
勤務表
データチェック
処理2
処理3
利点1
スッキリして見やすくなる
利点2
処理を再利用できる
利点3
エラーを特定しやすくなる
Copyright © 日本頭脳株式会社 All rights reserved. 113
やりたいこと 知識
色番号取得処理
(呼び出される側)
エラーチェック処理
(呼び出す側)
色を番号ではなく名称で指定できるように、
「色番号取得処理」をつくる
色の名称
“赤” ”緑”
色番号
3 4
引数 戻り値
Copyright © 日本頭脳株式会社 All rights reserved. 114
引数と戻り値がある処理の書き方
Function 処理名(引数名 As 引数の型) As 戻り値の型
処理名 = 値
End Function
知識
例)
Function getColor(sColor As String) As Integer
If sColor = “赤” Then
getColor = 3
End If
End Function
上記の処理を呼び出すとき)
cell.Interior.ColorIndex = getColor(“赤")
「3」
戻り値として、何らかの値をセットする
戻り値として「3」をセットする
Copyright © 日本頭脳株式会社 All rights reserved. 115
Functionを書いてみよう
'**********************************************
‘* 色番号取得処理
'**********************************************
Function getColor(sColor As String) As Integer
Select Case sColor
Case "赤"
‘赤の場合は戻り値に3をセットする
Case "緑"
‘緑の場合は戻り値に4をセットする
Case "クリア"
‘クリアの場合は戻り値に0をセットする
End Select
End Function
ワーク
処理名は「getColor」とする
引数は、色名称(String型)とする
戻り値は、色番号(Integer型)とする
Copyright © 日本頭脳株式会社 All rights reserved. 116
Functionを書いてみよう
'**********************************************
‘* 色番号取得処理
'**********************************************
Function getColor(sColor As String) As Integer
Select Case sColor
Case "赤"
getColor = 3
Case "緑"
getColor = 4
Case "クリア"
getColor = 0
End Select
End Function
ワーク
処理名は「getColor」とする
引数は、色名称(String型)とする
戻り値は、色番号(Integer型)とする
Copyright © 日本頭脳株式会社 All rights reserved. 117
色番号取得処理を呼び出してみよう
Function エラーチェック処理()
:
'勤務表シートのC5:M35範囲内で、セル1つずつ繰り返し処理を行う
For Each cell In Sheets("勤務表").Range("C5:M35")
:
'文字の両端が数値でない場合、セルの色を赤にする
If bLeft = False Or bRight = False Then
cell.Interior.ColorIndex = 3
'その他の場合は、セルの色をクリアする
Else
cell.Interior.ColorIndex = 0
End If
:
Next
End Function
ワーク
色を名称で指定してみよう
色を名称で指定してみよう
Copyright © 日本頭脳株式会社 All rights reserved. 118
色番号取得処理を呼び出してみよう
Function エラーチェック処理()
:
'勤務表シートのC5:M35範囲内で、セル1つずつ繰り返し処理を行う
For Each cell In Sheets("勤務表").Range("C5:M35")
:
'文字の両端が数値でない場合、セルの色を赤にする
If bLeft = False Or bRight = False Then
cell.Interior.ColorIndex = getColor("赤")
'その他の場合は、セルの色をクリアする
Else
cell.Interior.ColorIndex = getColor("クリア")
End If
:
Next
End Function
ワーク
ワーク12:Withを使いこなす
119
Copyright © 日本頭脳株式会社 All rights reserved.
Withとは
120
繰り返し書くのが面倒なので、省略する方法
知識
勤務表シートのA1セルの値を「1」にする
勤務表シートのA1セルの値を「2」にする
勤務表シートのB1セルの値を「3」にする
With 勤務表シート
A1セルの値を「1」にする
A1セルの値を「2」にする
B1セルの値を「3」にする
End With
Copyright © 日本頭脳株式会社 All rights reserved.
Withとは
121
繰り返し書くのが面倒なので、省略する方法
知識
Sheets(“勤務表”).Range(“A1”).Value = 1
Sheets(“勤務表”).Range(“A1”).Value = 2
Sheets(“勤務表”).Range(“B1”).Value = 3
With Sheets(“勤務表”)
.Range(“A1”).Value = 1
.Range(“A1”).Value = 2
.Range(“B1”).Value = 3
End With
「.」をつけ忘れずに!
Copyright © 日本頭脳株式会社 All rights reserved.
Withの入れ子構造(「ネスト」と言う)
122
知識
With Sheets(“勤務表”)
.Range(“A1”).Value = 1
.Range(“A1”).Value = 2
.Range(“B1”).Value = 3
End With
With Sheets(“勤務表”)
With .Range(“A1”)
.Value = 1
.Value = 2
End With
.Range(“B1”).Value = 3
End With
Copyright © 日本頭脳株式会社 All rights reserved. 123
Withを使ってみよう
例)
Function サンプル処理()
Sheets("勤務表").Range("C5").Interior.ColorIndex = 0
If Sheets("勤務表").Range("C5") <> "" Then
Sheets("勤務表").Range("C5").Interior.ColorIndex = 4
Else
Sheets("勤務表").Range("C5").Interior.ColorIndex = 0
End If
End Function
ワーク
Copyright © 日本頭脳株式会社 All rights reserved. 124
Withを使ってみよう
例)
Function サンプル処理()
With Sheets("勤務表").Range("C5")
.Interior.ColorIndex = 0
If .Value <> "" Then
.Interior.ColorIndex = 4
Else
.Interior.ColorIndex = 0
End If
End With
End Function
ワーク

More Related Content

What's hot

けぷ人とけぷ太
けぷ人とけぷ太けぷ人とけぷ太
けぷ人とけぷ太
ESM SEC
 
価値ある製品を生み出すためのアジャイル実践ポイント
価値ある製品を生み出すためのアジャイル実践ポイント価値ある製品を生み出すためのアジャイル実践ポイント
価値ある製品を生み出すためのアジャイル実践ポイント
Naoya Maekawa
 
成功と失敗に学ぶアジャイル受託開発の極意
成功と失敗に学ぶアジャイル受託開発の極意成功と失敗に学ぶアジャイル受託開発の極意
成功と失敗に学ぶアジャイル受託開発の極意
Yukio Okajima
 
アジャイル開発の普及状況と具体事例
アジャイル開発の普及状況と具体事例アジャイル開発の普及状況と具体事例
アジャイル開発の普及状況と具体事例
Yukio Okajima
 
ワークスタイルを変革する情報基盤 [ITpro EXPO A651]
ワークスタイルを変革する情報基盤 [ITpro EXPO A651]ワークスタイルを変革する情報基盤 [ITpro EXPO A651]
ワークスタイルを変革する情報基盤 [ITpro EXPO A651]
智治 長沢
 
【SFO2020】業務SEを7か月でWebエンジニアに変える方法 ~アジャイルマインドを得るために~
【SFO2020】業務SEを7か月でWebエンジニアに変える方法 ~アジャイルマインドを得るために~【SFO2020】業務SEを7か月でWebエンジニアに変える方法 ~アジャイルマインドを得るために~
【SFO2020】業務SEを7か月でWebエンジニアに変える方法 ~アジャイルマインドを得るために~
Yukio Okajima
 
業務SEを7か月でWebエンジニアに変える方法
業務SEを7か月でWebエンジニアに変える方法業務SEを7か月でWebエンジニアに変える方法
業務SEを7か月でWebエンジニアに変える方法
Yukio Okajima
 
アジャイル時代のチームやリーダーシップ
アジャイル時代のチームやリーダーシップアジャイル時代のチームやリーダーシップ
アジャイル時代のチームやリーダーシップ
Yukio Okajima
 
対話と創発~アジャイルなマーケティングチームの作り方
対話と創発~アジャイルなマーケティングチームの作り方対話と創発~アジャイルなマーケティングチームの作り方
対話と創発~アジャイルなマーケティングチームの作り方
Yukio Okajima
 
ふりかえりで学んだこと ベスト10
ふりかえりで学んだこと ベスト10ふりかえりで学んだこと ベスト10
ふりかえりで学んだこと ベスト10
ESM SEC
 
心理的な安心感をプロダクトに取り入れるために役立つ10のポイント
心理的な安心感をプロダクトに取り入れるために役立つ10のポイント心理的な安心感をプロダクトに取り入れるために役立つ10のポイント
心理的な安心感をプロダクトに取り入れるために役立つ10のポイント
MILI-LLC
 
技術とサービスをつなぎ価値ある製品をつくるための組込みアジャイル
技術とサービスをつなぎ価値ある製品をつくるための組込みアジャイル技術とサービスをつなぎ価値ある製品をつくるための組込みアジャイル
技術とサービスをつなぎ価値ある製品をつくるための組込みアジャイル
Naoya Maekawa
 
大規模スクラムの失敗から学んだこと #AgileJapan2015
大規模スクラムの失敗から学んだこと #AgileJapan2015大規模スクラムの失敗から学んだこと #AgileJapan2015
大規模スクラムの失敗から学んだこと #AgileJapan2015
Itsuki Sakitsu
 
営業も広報もいない僕たちが11年間やってきたこと
営業も広報もいない僕たちが11年間やってきたこと営業も広報もいない僕たちが11年間やってきたこと
営業も広報もいない僕たちが11年間やってきたこと
hirokiky
 
【完結編】総売り上げ:35,400円 _ 受託エンジニアが自社サービスのPOをやって学んだこと
【完結編】総売り上げ:35,400円 _ 受託エンジニアが自社サービスのPOをやって学んだこと【完結編】総売り上げ:35,400円 _ 受託エンジニアが自社サービスのPOをやって学んだこと
【完結編】総売り上げ:35,400円 _ 受託エンジニアが自社サービスのPOをやって学んだこと
Yukio Okajima
 
【在宅OK・言語自由】企画からコーティングをやりたいリードエンジニア募集!
【在宅OK・言語自由】企画からコーティングをやりたいリードエンジニア募集!【在宅OK・言語自由】企画からコーティングをやりたいリードエンジニア募集!
【在宅OK・言語自由】企画からコーティングをやりたいリードエンジニア募集!
APCommunications-recruit
 
リクルート住まいカンパニーの新規事業でのスクラム導入奮闘記
リクルート住まいカンパニーの新規事業でのスクラム導入奮闘記リクルート住まいカンパニーの新規事業でのスクラム導入奮闘記
リクルート住まいカンパニーの新規事業でのスクラム導入奮闘記
Tatsuya Yokoyama
 

What's hot (17)

けぷ人とけぷ太
けぷ人とけぷ太けぷ人とけぷ太
けぷ人とけぷ太
 
価値ある製品を生み出すためのアジャイル実践ポイント
価値ある製品を生み出すためのアジャイル実践ポイント価値ある製品を生み出すためのアジャイル実践ポイント
価値ある製品を生み出すためのアジャイル実践ポイント
 
成功と失敗に学ぶアジャイル受託開発の極意
成功と失敗に学ぶアジャイル受託開発の極意成功と失敗に学ぶアジャイル受託開発の極意
成功と失敗に学ぶアジャイル受託開発の極意
 
アジャイル開発の普及状況と具体事例
アジャイル開発の普及状況と具体事例アジャイル開発の普及状況と具体事例
アジャイル開発の普及状況と具体事例
 
ワークスタイルを変革する情報基盤 [ITpro EXPO A651]
ワークスタイルを変革する情報基盤 [ITpro EXPO A651]ワークスタイルを変革する情報基盤 [ITpro EXPO A651]
ワークスタイルを変革する情報基盤 [ITpro EXPO A651]
 
【SFO2020】業務SEを7か月でWebエンジニアに変える方法 ~アジャイルマインドを得るために~
【SFO2020】業務SEを7か月でWebエンジニアに変える方法 ~アジャイルマインドを得るために~【SFO2020】業務SEを7か月でWebエンジニアに変える方法 ~アジャイルマインドを得るために~
【SFO2020】業務SEを7か月でWebエンジニアに変える方法 ~アジャイルマインドを得るために~
 
業務SEを7か月でWebエンジニアに変える方法
業務SEを7か月でWebエンジニアに変える方法業務SEを7か月でWebエンジニアに変える方法
業務SEを7か月でWebエンジニアに変える方法
 
アジャイル時代のチームやリーダーシップ
アジャイル時代のチームやリーダーシップアジャイル時代のチームやリーダーシップ
アジャイル時代のチームやリーダーシップ
 
対話と創発~アジャイルなマーケティングチームの作り方
対話と創発~アジャイルなマーケティングチームの作り方対話と創発~アジャイルなマーケティングチームの作り方
対話と創発~アジャイルなマーケティングチームの作り方
 
ふりかえりで学んだこと ベスト10
ふりかえりで学んだこと ベスト10ふりかえりで学んだこと ベスト10
ふりかえりで学んだこと ベスト10
 
心理的な安心感をプロダクトに取り入れるために役立つ10のポイント
心理的な安心感をプロダクトに取り入れるために役立つ10のポイント心理的な安心感をプロダクトに取り入れるために役立つ10のポイント
心理的な安心感をプロダクトに取り入れるために役立つ10のポイント
 
技術とサービスをつなぎ価値ある製品をつくるための組込みアジャイル
技術とサービスをつなぎ価値ある製品をつくるための組込みアジャイル技術とサービスをつなぎ価値ある製品をつくるための組込みアジャイル
技術とサービスをつなぎ価値ある製品をつくるための組込みアジャイル
 
大規模スクラムの失敗から学んだこと #AgileJapan2015
大規模スクラムの失敗から学んだこと #AgileJapan2015大規模スクラムの失敗から学んだこと #AgileJapan2015
大規模スクラムの失敗から学んだこと #AgileJapan2015
 
営業も広報もいない僕たちが11年間やってきたこと
営業も広報もいない僕たちが11年間やってきたこと営業も広報もいない僕たちが11年間やってきたこと
営業も広報もいない僕たちが11年間やってきたこと
 
【完結編】総売り上げ:35,400円 _ 受託エンジニアが自社サービスのPOをやって学んだこと
【完結編】総売り上げ:35,400円 _ 受託エンジニアが自社サービスのPOをやって学んだこと【完結編】総売り上げ:35,400円 _ 受託エンジニアが自社サービスのPOをやって学んだこと
【完結編】総売り上げ:35,400円 _ 受託エンジニアが自社サービスのPOをやって学んだこと
 
【在宅OK・言語自由】企画からコーティングをやりたいリードエンジニア募集!
【在宅OK・言語自由】企画からコーティングをやりたいリードエンジニア募集!【在宅OK・言語自由】企画からコーティングをやりたいリードエンジニア募集!
【在宅OK・言語自由】企画からコーティングをやりたいリードエンジニア募集!
 
リクルート住まいカンパニーの新規事業でのスクラム導入奮闘記
リクルート住まいカンパニーの新規事業でのスクラム導入奮闘記リクルート住まいカンパニーの新規事業でのスクラム導入奮闘記
リクルート住まいカンパニーの新規事業でのスクラム導入奮闘記
 

Viewers also liked

JM Ocean avenue Japan会社案内 201609
JM Ocean avenue Japan会社案内 201609JM Ocean avenue Japan会社案内 201609
JM Ocean avenue Japan会社案内 201609
jmoajp
 
小2格安Sim【小学校2年生でもわかる 「格安SIM」のしくみ】
小2格安Sim【小学校2年生でもわかる 「格安SIM」のしくみ】小2格安Sim【小学校2年生でもわかる 「格安SIM」のしくみ】
小2格安Sim【小学校2年生でもわかる 「格安SIM」のしくみ】
公太 酒井
 
【配布資料】マーケ講座Ver2.0
【配布資料】マーケ講座Ver2.0【配布資料】マーケ講座Ver2.0
【配布資料】マーケ講座Ver2.0
Takahiro Nagai
 
JOHN VENEZIA RESUME 2
JOHN VENEZIA RESUME 2JOHN VENEZIA RESUME 2
JOHN VENEZIA RESUME 2JOHN VENEZIA
 
Act 1
Act 1Act 1
INFORME DE GESTIÓN Cartera académica Comunicarte Centro Interno
INFORME DE GESTIÓN Cartera académica Comunicarte Centro InternoINFORME DE GESTIÓN Cartera académica Comunicarte Centro Interno
INFORME DE GESTIÓN Cartera académica Comunicarte Centro Interno
Silvia Evelyn
 
Metodología de la investigación 6-12-2016
Metodología de la investigación 6-12-2016Metodología de la investigación 6-12-2016
Metodología de la investigación 6-12-2016
emilio belmonte azuara
 
Dinar emas
Dinar emasDinar emas
Dinar emas
nursyadzadzulkifli
 
Portfolio project
Portfolio projectPortfolio project
Portfolio project
jesus vasquez
 
Diseño de unidad didáctica de historia, geografía y ciencias sociales
Diseño de unidad didáctica de historia, geografía y ciencias socialesDiseño de unidad didáctica de historia, geografía y ciencias sociales
Diseño de unidad didáctica de historia, geografía y ciencias sociales
Catherin Villarroel
 
The Relationship between Economic Growth and Sustainability
The Relationship between Economic Growth and SustainabilityThe Relationship between Economic Growth and Sustainability
The Relationship between Economic Growth and SustainabilityKayla Davenport
 
Precious Shade of Love
Precious Shade of LovePrecious Shade of Love
Precious Shade of Love
ishushah1
 

Viewers also liked (15)

JM Ocean avenue Japan会社案内 201609
JM Ocean avenue Japan会社案内 201609JM Ocean avenue Japan会社案内 201609
JM Ocean avenue Japan会社案内 201609
 
小2格安Sim【小学校2年生でもわかる 「格安SIM」のしくみ】
小2格安Sim【小学校2年生でもわかる 「格安SIM」のしくみ】小2格安Sim【小学校2年生でもわかる 「格安SIM」のしくみ】
小2格安Sim【小学校2年生でもわかる 「格安SIM」のしくみ】
 
【配布資料】マーケ講座Ver2.0
【配布資料】マーケ講座Ver2.0【配布資料】マーケ講座Ver2.0
【配布資料】マーケ講座Ver2.0
 
JOHN VENEZIA RESUME 2
JOHN VENEZIA RESUME 2JOHN VENEZIA RESUME 2
JOHN VENEZIA RESUME 2
 
Act 1
Act 1Act 1
Act 1
 
conclucion
conclucionconclucion
conclucion
 
INFORME DE GESTIÓN Cartera académica Comunicarte Centro Interno
INFORME DE GESTIÓN Cartera académica Comunicarte Centro InternoINFORME DE GESTIÓN Cartera académica Comunicarte Centro Interno
INFORME DE GESTIÓN Cartera académica Comunicarte Centro Interno
 
Metodología de la investigación 6-12-2016
Metodología de la investigación 6-12-2016Metodología de la investigación 6-12-2016
Metodología de la investigación 6-12-2016
 
Dinar emas
Dinar emasDinar emas
Dinar emas
 
Portfolio project
Portfolio projectPortfolio project
Portfolio project
 
Diseño de unidad didáctica de historia, geografía y ciencias sociales
Diseño de unidad didáctica de historia, geografía y ciencias socialesDiseño de unidad didáctica de historia, geografía y ciencias sociales
Diseño de unidad didáctica de historia, geografía y ciencias sociales
 
FantasticStudents
FantasticStudentsFantasticStudents
FantasticStudents
 
The Relationship between Economic Growth and Sustainability
The Relationship between Economic Growth and SustainabilityThe Relationship between Economic Growth and Sustainability
The Relationship between Economic Growth and Sustainability
 
Precious Shade of Love
Precious Shade of LovePrecious Shade of Love
Precious Shade of Love
 
SANBORNS_MICHILA_2
SANBORNS_MICHILA_2SANBORNS_MICHILA_2
SANBORNS_MICHILA_2
 

Similar to 最強のExcel VBA基礎コース レジュメ

電通、リクルート、サントリーショッピングクラブ、有名企業がいち早く選んだ kintone を徹底解説
電通、リクルート、サントリーショッピングクラブ、有名企業がいち早く選んだ kintone を徹底解説電通、リクルート、サントリーショッピングクラブ、有名企業がいち早く選んだ kintone を徹底解説
電通、リクルート、サントリーショッピングクラブ、有名企業がいち早く選んだ kintone を徹底解説
Cybozucommunity
 
ジョイゾー_kintonehive
ジョイゾー_kintonehiveジョイゾー_kintonehive
ジョイゾー_kintonehive
Cybozucommunity
 
プロダクトマネージャーはエンジニアリングマネージャーになれるのか
プロダクトマネージャーはエンジニアリングマネージャーになれるのかプロダクトマネージャーはエンジニアリングマネージャーになれるのか
プロダクトマネージャーはエンジニアリングマネージャーになれるのか
Atsumi Kawashima
 
自動化の下ごしらえ
自動化の下ごしらえ自動化の下ごしらえ
自動化の下ごしらえ
akira6592
 
kintone hack 真のファストシステムへ
kintone hack 真のファストシステムへkintone hack 真のファストシステムへ
kintone hack 真のファストシステムへ
Cybozucommunity
 
1歩目から間違えないためのExcel術 先生:田中亨(Office TANAKA)
1歩目から間違えないためのExcel術 先生:田中亨(Office TANAKA)1歩目から間違えないためのExcel術 先生:田中亨(Office TANAKA)
1歩目から間違えないためのExcel術 先生:田中亨(Office TANAKA)
schoowebcampus
 
Saga Smart Center - Excelで完結!マイクロソフト流データサイエンスの極意
Saga Smart Center - Excelで完結!マイクロソフト流データサイエンスの極意Saga Smart Center - Excelで完結!マイクロソフト流データサイエンスの極意
Saga Smart Center - Excelで完結!マイクロソフト流データサイエンスの極意
Daiyu Hatakeyama
 
「らしく」ハタラコウ。 ChatWork x クラウドソーシング
「らしく」ハタラコウ。 ChatWork x クラウドソーシング「らしく」ハタラコウ。 ChatWork x クラウドソーシング
「らしく」ハタラコウ。 ChatWork x クラウドソーシング
Hiroshi KURABAYASHI
 
鹿駆動
鹿駆動鹿駆動
鹿駆動
Shinichi Kozake
 
2014-10-27 #ssmjp 腹を割って話そう (運用xセキュリティ)
2014-10-27 #ssmjp 腹を割って話そう (運用xセキュリティ)2014-10-27 #ssmjp 腹を割って話そう (運用xセキュリティ)
2014-10-27 #ssmjp 腹を割って話そう (運用xセキュリティ)
Operation Lab, LLC.
 
Office365 lt share point onlineを使った課題管理方法
Office365 lt share point onlineを使った課題管理方法Office365 lt share point onlineを使った課題管理方法
Office365 lt share point onlineを使った課題管理方法
mokudai masayuki
 
System Centerで変わる運用
System Centerで変わる運用System Centerで変わる運用
System Centerで変わる運用
Masahiko Ebisuda
 
DOO-015_Azure/Windows Server 2016 から学ぶ Windows 系インフラ エンジニアのための DevOps
DOO-015_Azure/Windows Server 2016 から学ぶ Windows 系インフラ エンジニアのための DevOpsDOO-015_Azure/Windows Server 2016 から学ぶ Windows 系インフラ エンジニアのための DevOps
DOO-015_Azure/Windows Server 2016 から学ぶ Windows 系インフラ エンジニアのための DevOps
decode2016
 
Introduction of KOTATSU-MODEL in Requirement Development
Introduction of KOTATSU-MODEL in Requirement DevelopmentIntroduction of KOTATSU-MODEL in Requirement Development
Introduction of KOTATSU-MODEL in Requirement Development
Kent Ishizawa
 
レガシーコード改善ガイド 第7章 いつまでたっても変更作業が終わりません
レガシーコード改善ガイド 第7章 いつまでたっても変更作業が終わりませんレガシーコード改善ガイド 第7章 いつまでたっても変更作業が終わりません
レガシーコード改善ガイド 第7章 いつまでたっても変更作業が終わりませんTakahiro Okada
 
New Integration "X" 新インテグレーションソリューション
New Integration "X" 新インテグレーションソリューションNew Integration "X" 新インテグレーションソリューション
New Integration "X" 新インテグレーションソリューション
motani_kamakura
 
Commercial Open Source BPP (Business Process Platform) & OSS Business Model
Commercial Open Source BPP (Business Process Platform) & OSS Business ModelCommercial Open Source BPP (Business Process Platform) & OSS Business Model
Commercial Open Source BPP (Business Process Platform) & OSS Business Model
Tomoaki Sawada
 
イノベーションスプリント2011 infragisticsにおける世界分散アジャイル開発事例~ communication matters ~
イノベーションスプリント2011 infragisticsにおける世界分散アジャイル開発事例~ communication matters ~イノベーションスプリント2011 infragisticsにおける世界分散アジャイル開発事例~ communication matters ~
イノベーションスプリント2011 infragisticsにおける世界分散アジャイル開発事例~ communication matters ~InnovationSprint2011
 
Intalio会社概要とbpmsの特長20100319
Intalio会社概要とbpmsの特長20100319Intalio会社概要とbpmsの特長20100319
Intalio会社概要とbpmsの特長20100319Tomoaki Sawada
 

Similar to 最強のExcel VBA基礎コース レジュメ (20)

電通、リクルート、サントリーショッピングクラブ、有名企業がいち早く選んだ kintone を徹底解説
電通、リクルート、サントリーショッピングクラブ、有名企業がいち早く選んだ kintone を徹底解説電通、リクルート、サントリーショッピングクラブ、有名企業がいち早く選んだ kintone を徹底解説
電通、リクルート、サントリーショッピングクラブ、有名企業がいち早く選んだ kintone を徹底解説
 
ジョイゾー_kintonehive
ジョイゾー_kintonehiveジョイゾー_kintonehive
ジョイゾー_kintonehive
 
プロダクトマネージャーはエンジニアリングマネージャーになれるのか
プロダクトマネージャーはエンジニアリングマネージャーになれるのかプロダクトマネージャーはエンジニアリングマネージャーになれるのか
プロダクトマネージャーはエンジニアリングマネージャーになれるのか
 
自動化の下ごしらえ
自動化の下ごしらえ自動化の下ごしらえ
自動化の下ごしらえ
 
kintone hack 真のファストシステムへ
kintone hack 真のファストシステムへkintone hack 真のファストシステムへ
kintone hack 真のファストシステムへ
 
1歩目から間違えないためのExcel術 先生:田中亨(Office TANAKA)
1歩目から間違えないためのExcel術 先生:田中亨(Office TANAKA)1歩目から間違えないためのExcel術 先生:田中亨(Office TANAKA)
1歩目から間違えないためのExcel術 先生:田中亨(Office TANAKA)
 
Saga Smart Center - Excelで完結!マイクロソフト流データサイエンスの極意
Saga Smart Center - Excelで完結!マイクロソフト流データサイエンスの極意Saga Smart Center - Excelで完結!マイクロソフト流データサイエンスの極意
Saga Smart Center - Excelで完結!マイクロソフト流データサイエンスの極意
 
「らしく」ハタラコウ。 ChatWork x クラウドソーシング
「らしく」ハタラコウ。 ChatWork x クラウドソーシング「らしく」ハタラコウ。 ChatWork x クラウドソーシング
「らしく」ハタラコウ。 ChatWork x クラウドソーシング
 
鹿駆動
鹿駆動鹿駆動
鹿駆動
 
2014-10-27 #ssmjp 腹を割って話そう (運用xセキュリティ)
2014-10-27 #ssmjp 腹を割って話そう (運用xセキュリティ)2014-10-27 #ssmjp 腹を割って話そう (運用xセキュリティ)
2014-10-27 #ssmjp 腹を割って話そう (運用xセキュリティ)
 
OpenSpan_PreMarketing
OpenSpan_PreMarketingOpenSpan_PreMarketing
OpenSpan_PreMarketing
 
Office365 lt share point onlineを使った課題管理方法
Office365 lt share point onlineを使った課題管理方法Office365 lt share point onlineを使った課題管理方法
Office365 lt share point onlineを使った課題管理方法
 
System Centerで変わる運用
System Centerで変わる運用System Centerで変わる運用
System Centerで変わる運用
 
DOO-015_Azure/Windows Server 2016 から学ぶ Windows 系インフラ エンジニアのための DevOps
DOO-015_Azure/Windows Server 2016 から学ぶ Windows 系インフラ エンジニアのための DevOpsDOO-015_Azure/Windows Server 2016 から学ぶ Windows 系インフラ エンジニアのための DevOps
DOO-015_Azure/Windows Server 2016 から学ぶ Windows 系インフラ エンジニアのための DevOps
 
Introduction of KOTATSU-MODEL in Requirement Development
Introduction of KOTATSU-MODEL in Requirement DevelopmentIntroduction of KOTATSU-MODEL in Requirement Development
Introduction of KOTATSU-MODEL in Requirement Development
 
レガシーコード改善ガイド 第7章 いつまでたっても変更作業が終わりません
レガシーコード改善ガイド 第7章 いつまでたっても変更作業が終わりませんレガシーコード改善ガイド 第7章 いつまでたっても変更作業が終わりません
レガシーコード改善ガイド 第7章 いつまでたっても変更作業が終わりません
 
New Integration "X" 新インテグレーションソリューション
New Integration "X" 新インテグレーションソリューションNew Integration "X" 新インテグレーションソリューション
New Integration "X" 新インテグレーションソリューション
 
Commercial Open Source BPP (Business Process Platform) & OSS Business Model
Commercial Open Source BPP (Business Process Platform) & OSS Business ModelCommercial Open Source BPP (Business Process Platform) & OSS Business Model
Commercial Open Source BPP (Business Process Platform) & OSS Business Model
 
イノベーションスプリント2011 infragisticsにおける世界分散アジャイル開発事例~ communication matters ~
イノベーションスプリント2011 infragisticsにおける世界分散アジャイル開発事例~ communication matters ~イノベーションスプリント2011 infragisticsにおける世界分散アジャイル開発事例~ communication matters ~
イノベーションスプリント2011 infragisticsにおける世界分散アジャイル開発事例~ communication matters ~
 
Intalio会社概要とbpmsの特長20100319
Intalio会社概要とbpmsの特長20100319Intalio会社概要とbpmsの特長20100319
Intalio会社概要とbpmsの特長20100319
 

Recently uploaded

LabBase就職ご紹介資料_240605サービス概要説明資料240605.pdf
LabBase就職ご紹介資料_240605サービス概要説明資料240605.pdfLabBase就職ご紹介資料_240605サービス概要説明資料240605.pdf
LabBase就職ご紹介資料_240605サービス概要説明資料240605.pdf
ssuser8de8212
 
株式会社ROMS採用候補者用説明資料。候補者の方向け事業概要・沿革・カルチャーをご紹介
株式会社ROMS採用候補者用説明資料。候補者の方向け事業概要・沿革・カルチャーをご紹介株式会社ROMS採用候補者用説明資料。候補者の方向け事業概要・沿革・カルチャーをご紹介
株式会社ROMS採用候補者用説明資料。候補者の方向け事業概要・沿革・カルチャーをご紹介
ssuserdc1268
 
intra-mart Accel series 2024 Spring updates
intra-mart Accel series 2024 Spring updatesintra-mart Accel series 2024 Spring updates
intra-mart Accel series 2024 Spring updates
NTTDATA INTRAMART
 
【slideshare】オンライン二次健診サービス_20240607.pptx.pdf
【slideshare】オンライン二次健診サービス_20240607.pptx.pdf【slideshare】オンライン二次健診サービス_20240607.pptx.pdf
【slideshare】オンライン二次健診サービス_20240607.pptx.pdf
chiakiota2
 
smartcamp_RECRUIT_deck 2024060606 dddddd
smartcamp_RECRUIT_deck 2024060606 ddddddsmartcamp_RECRUIT_deck 2024060606 dddddd
smartcamp_RECRUIT_deck 2024060606 dddddd
design777859
 
kintone Café 山口 Vol.8 kintone×UiPath.pdf
kintone Café 山口 Vol.8 kintone×UiPath.pdfkintone Café 山口 Vol.8 kintone×UiPath.pdf
kintone Café 山口 Vol.8 kintone×UiPath.pdf
takashihashimoto14
 
MMOLHolging株式会社|BtoC、D2C事業グロース支援・インターナルブランディング、採用ブランディング、社員エンゲージメント向上DX
MMOLHolging株式会社|BtoC、D2C事業グロース支援・インターナルブランディング、採用ブランディング、社員エンゲージメント向上DXMMOLHolging株式会社|BtoC、D2C事業グロース支援・インターナルブランディング、採用ブランディング、社員エンゲージメント向上DX
MMOLHolging株式会社|BtoC、D2C事業グロース支援・インターナルブランディング、採用ブランディング、社員エンゲージメント向上DX
sakanotakashi
 
KGIとKPIについて(営業の目標設定とKPIの商談プロセス) About KGI and KPI
KGIとKPIについて(営業の目標設定とKPIの商談プロセス) About KGI and KPIKGIとKPIについて(営業の目標設定とKPIの商談プロセス) About KGI and KPI
KGIとKPIについて(営業の目標設定とKPIの商談プロセス) About KGI and KPI
Tsuyoshi Horigome
 
株式会社ジンザイベース/特定技能外国人紹介に関する提案資料/2024ver///
株式会社ジンザイベース/特定技能外国人紹介に関する提案資料/2024ver///株式会社ジンザイベース/特定技能外国人紹介に関する提案資料/2024ver///
株式会社ジンザイベース/特定技能外国人紹介に関する提案資料/2024ver///
DAISUKE NAKAMURA
 
株式会社メンバーズ「脱炭素アクション100」2023年度実施レポート(2024.6.6)
株式会社メンバーズ「脱炭素アクション100」2023年度実施レポート(2024.6.6)株式会社メンバーズ「脱炭素アクション100」2023年度実施レポート(2024.6.6)
株式会社メンバーズ「脱炭素アクション100」2023年度実施レポート(2024.6.6)
Members_corp
 
Service-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadershipService-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadership
Yasuyoshi Minehisa
 
CFO組織の働き方を変える 経理業務変革プラットフォーム 「BlackLine」のご紹介
CFO組織の働き方を変える 経理業務変革プラットフォーム 「BlackLine」のご紹介CFO組織の働き方を変える 経理業務変革プラットフォーム 「BlackLine」のご紹介
CFO組織の働き方を変える 経理業務変革プラットフォーム 「BlackLine」のご紹介
taisukekuwano4
 
【公開用】株式会社VISIONARY JAPAN_エンジニアチーム 採用資料(ver2.1)
【公開用】株式会社VISIONARY JAPAN_エンジニアチーム 採用資料(ver2.1)【公開用】株式会社VISIONARY JAPAN_エンジニアチーム 採用資料(ver2.1)
【公開用】株式会社VISIONARY JAPAN_エンジニアチーム 採用資料(ver2.1)
recruit9
 
Temp agency_Value Core Consulting Co., Ltd.
Temp agency_Value Core Consulting Co., Ltd.Temp agency_Value Core Consulting Co., Ltd.
Temp agency_Value Core Consulting Co., Ltd.
dyasa
 
20240606_Service Design Exercise_Visual Report_vol.1.pdf
20240606_Service Design Exercise_Visual Report_vol.1.pdf20240606_Service Design Exercise_Visual Report_vol.1.pdf
20240606_Service Design Exercise_Visual Report_vol.1.pdf
jun_suto
 
研究エンパワープラットフォームを提供するLabBaseから理系採用成功に向けたご提案
研究エンパワープラットフォームを提供するLabBaseから理系採用成功に向けたご提案研究エンパワープラットフォームを提供するLabBaseから理系採用成功に向けたご提案
研究エンパワープラットフォームを提供するLabBaseから理系採用成功に向けたご提案
ssuser4eac57
 

Recently uploaded (16)

LabBase就職ご紹介資料_240605サービス概要説明資料240605.pdf
LabBase就職ご紹介資料_240605サービス概要説明資料240605.pdfLabBase就職ご紹介資料_240605サービス概要説明資料240605.pdf
LabBase就職ご紹介資料_240605サービス概要説明資料240605.pdf
 
株式会社ROMS採用候補者用説明資料。候補者の方向け事業概要・沿革・カルチャーをご紹介
株式会社ROMS採用候補者用説明資料。候補者の方向け事業概要・沿革・カルチャーをご紹介株式会社ROMS採用候補者用説明資料。候補者の方向け事業概要・沿革・カルチャーをご紹介
株式会社ROMS採用候補者用説明資料。候補者の方向け事業概要・沿革・カルチャーをご紹介
 
intra-mart Accel series 2024 Spring updates
intra-mart Accel series 2024 Spring updatesintra-mart Accel series 2024 Spring updates
intra-mart Accel series 2024 Spring updates
 
【slideshare】オンライン二次健診サービス_20240607.pptx.pdf
【slideshare】オンライン二次健診サービス_20240607.pptx.pdf【slideshare】オンライン二次健診サービス_20240607.pptx.pdf
【slideshare】オンライン二次健診サービス_20240607.pptx.pdf
 
smartcamp_RECRUIT_deck 2024060606 dddddd
smartcamp_RECRUIT_deck 2024060606 ddddddsmartcamp_RECRUIT_deck 2024060606 dddddd
smartcamp_RECRUIT_deck 2024060606 dddddd
 
kintone Café 山口 Vol.8 kintone×UiPath.pdf
kintone Café 山口 Vol.8 kintone×UiPath.pdfkintone Café 山口 Vol.8 kintone×UiPath.pdf
kintone Café 山口 Vol.8 kintone×UiPath.pdf
 
MMOLHolging株式会社|BtoC、D2C事業グロース支援・インターナルブランディング、採用ブランディング、社員エンゲージメント向上DX
MMOLHolging株式会社|BtoC、D2C事業グロース支援・インターナルブランディング、採用ブランディング、社員エンゲージメント向上DXMMOLHolging株式会社|BtoC、D2C事業グロース支援・インターナルブランディング、採用ブランディング、社員エンゲージメント向上DX
MMOLHolging株式会社|BtoC、D2C事業グロース支援・インターナルブランディング、採用ブランディング、社員エンゲージメント向上DX
 
KGIとKPIについて(営業の目標設定とKPIの商談プロセス) About KGI and KPI
KGIとKPIについて(営業の目標設定とKPIの商談プロセス) About KGI and KPIKGIとKPIについて(営業の目標設定とKPIの商談プロセス) About KGI and KPI
KGIとKPIについて(営業の目標設定とKPIの商談プロセス) About KGI and KPI
 
株式会社ジンザイベース/特定技能外国人紹介に関する提案資料/2024ver///
株式会社ジンザイベース/特定技能外国人紹介に関する提案資料/2024ver///株式会社ジンザイベース/特定技能外国人紹介に関する提案資料/2024ver///
株式会社ジンザイベース/特定技能外国人紹介に関する提案資料/2024ver///
 
株式会社メンバーズ「脱炭素アクション100」2023年度実施レポート(2024.6.6)
株式会社メンバーズ「脱炭素アクション100」2023年度実施レポート(2024.6.6)株式会社メンバーズ「脱炭素アクション100」2023年度実施レポート(2024.6.6)
株式会社メンバーズ「脱炭素アクション100」2023年度実施レポート(2024.6.6)
 
Service-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadershipService-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadership
 
CFO組織の働き方を変える 経理業務変革プラットフォーム 「BlackLine」のご紹介
CFO組織の働き方を変える 経理業務変革プラットフォーム 「BlackLine」のご紹介CFO組織の働き方を変える 経理業務変革プラットフォーム 「BlackLine」のご紹介
CFO組織の働き方を変える 経理業務変革プラットフォーム 「BlackLine」のご紹介
 
【公開用】株式会社VISIONARY JAPAN_エンジニアチーム 採用資料(ver2.1)
【公開用】株式会社VISIONARY JAPAN_エンジニアチーム 採用資料(ver2.1)【公開用】株式会社VISIONARY JAPAN_エンジニアチーム 採用資料(ver2.1)
【公開用】株式会社VISIONARY JAPAN_エンジニアチーム 採用資料(ver2.1)
 
Temp agency_Value Core Consulting Co., Ltd.
Temp agency_Value Core Consulting Co., Ltd.Temp agency_Value Core Consulting Co., Ltd.
Temp agency_Value Core Consulting Co., Ltd.
 
20240606_Service Design Exercise_Visual Report_vol.1.pdf
20240606_Service Design Exercise_Visual Report_vol.1.pdf20240606_Service Design Exercise_Visual Report_vol.1.pdf
20240606_Service Design Exercise_Visual Report_vol.1.pdf
 
研究エンパワープラットフォームを提供するLabBaseから理系採用成功に向けたご提案
研究エンパワープラットフォームを提供するLabBaseから理系採用成功に向けたご提案研究エンパワープラットフォームを提供するLabBaseから理系採用成功に向けたご提案
研究エンパワープラットフォームを提供するLabBaseから理系採用成功に向けたご提案
 

最強のExcel VBA基礎コース レジュメ

  • 1. 最強の Excel VBA 講座 業務効率化のプロが教える 基礎
  • 4. Copyright © 日本頭脳株式会社 All rights reserved. 講師プロフィール V-CO N VBA Consulting EXcel ercise エクセル 本舗 日本頭脳株式会社 代表取締役。ITコーディネータ、調理師。世 界最大級のコンサルティングファームであるプライスウォーターハ ウスクーパース出身のたたき上げITコンサルタント。10年以上に わたり大企業向けの業務改革プロジェクトをリード。オフィスワー クの生産性向上実現をコンセプトとして事業を展開している。 永井 雅明 業務改善コンサルティング 高度IT業務アウトソーシング 高度IT人材育成
  • 5. Copyright © 日本頭脳株式会社 All rights reserved. 事業コンセプトイメージ 4 仕様策定から任せられる 日本頭脳の実力 V-CON VBA Consulting
  • 6. Copyright © 日本頭脳株式会社 All rights reserved. 事業コンセプトイメージ 5 V-CON VBA Consulting V BAで 業務にイノベーションを
  • 7. Copyright © 日本頭脳株式会社 All rights reserved. 実績 6 ✓業務改善コンサルタント歴15年。 ✓プロジェクトマネージャー経験7回。 ✓全社システム導入会社数10社。 ✓システム規模最大6,000ユーザ。 ✓画面設計数500以上。 ✓データベース(テーブル)設計数1,500以上。
  • 9. Copyright © 日本頭脳株式会社 All rights reserved. スパイラル学習 目 的 の 処 理 ( 日 本 語 ) V B A プ ロ グ ラ ム ( 機 械 語 ) 知識のインプット 実習(ワーク) 知識のインプット 実習(ワーク) 知識のインプット 実習(ワーク) 知識のインプット 実習(ワーク) 知識のインプット 実習(ワーク) 全体像を捉えながら、目的の処理を段階的に作成していくアプローチ 8
  • 10. 本日のスケジュール 9 1. イントロダクション 5分 2. 勤務表データチェック<前半戦> 60分 ワーク1:ボタンを作る ワーク2:ボタンから処理を呼び出す ワーク3:セルの色を変える ワーク4:処理から処理を呼び出す ワーク5:分岐処理を行う ・・休憩・・ 5分 3. 勤務表データチェック<後半戦> 60分 ワーク6:引数・戻り値を理解する(1) ワーク7:繰り返し処理を行う ワーク8:関数の使い方を理解する ワーク9:動作確認 ・・休憩・・ - 4. オプション講義 30分 ワーク10:変数を理解する ワーク11:引数・戻り値を理解する(2) ワーク12:Withを使いこなす 5. ステップアップ講座のご案内・ アンケート 10分
  • 11. Copyright © 日本頭脳株式会社 All rights reserved. 講義中のルール 講義中の質問OK 疲れたら手を休めてOK ついてこれない場合は休憩中にフォロー トイレ休憩はご自由に 携帯電話・スマートフォンは音が鳴らないように 10
  • 14. Copyright © 日本頭脳株式会社 All rights reserved. <全体像>勤務表データを確認しよう <入力ルールを確認> • 時刻の時と分は「:」区切り 例)11:00 • 開始時刻と終了時刻は「~」区切り 例) 9:30~14:00 13 時間帯の両側に文字が混入していないか チェックするプログラムを作成する 9:30~14:00
  • 15. Copyright © 日本頭脳株式会社 All rights reserved. <全体像>処理の内容を理解しよう '***************************************** '* エラーチェック処理 '***************************************** '最初に、セルの色をクリアする '処理開始の確認メッセージを表示する 'キャンセルされた場合は、処理を終了する '勤務表シートのC5:M35範囲内で、セル1つずつ繰り返し処理を行う 'セルの値の有無により、分岐処理を行う '値がある場合 'セルの値を表示する '文字の両端が数値でない場合、セルの色を赤にする 'それ以外の場合は、セルの色をクリアする '値がない場合 'セルの色を薄いグレーにする 勤務表データに、時間以外の文字が混入していないかチェックする エラーの場合は赤、空欄の場合は薄いグレーにし、エラーがない場合は色をクリアする 14
  • 16. Copyright © 日本頭脳株式会社 All rights reserved. <全体像>処理の流れを理解しよう ボタンを配置 エラーチェック 処理 15
  • 18. Copyright © 日本頭脳株式会社 All rights reserved. 開発タブを表示する 「開発」タブが表 示されていない 17
  • 19. Copyright © 日本頭脳株式会社 All rights reserved. 開発タブを表示する ファイル>オプション>リボンのユーザー設定 18 知識 「開発」にチェック
  • 20. Copyright © 日本頭脳株式会社 All rights reserved. VBEを表示する Visual Basic 19 知識
  • 21. Copyright © 日本頭脳株式会社 All rights reserved. VBEを表示する プロパティウィンドウ イミディエイトウィンドウ ローカルウィンドウ ウォッチウィンドウ プロジェクトエクスプローラー(オブジェクトの一覧) 20 知識
  • 22. Copyright © 日本頭脳株式会社 All rights reserved. プログラムを書く場所を表示する(1) ダブルクリック 21
  • 23. Copyright © 日本頭脳株式会社 All rights reserved. プログラムを書く場所を表示する(2) 22
  • 24. Copyright © 日本頭脳株式会社 All rights reserved. 参考)モジュールの違い ▼オブジェクトにくっつく  シートモジュール  ブックモジュール  フォームモジュール ↓ イベントが起こせる エラー箇所を特定できない ▼オブジェクトにくっつかない  標準モジュール オブジェクト指向の設計は不要 インスタンス化できない スコープが広い  クラスモジュール オブジェクト指向の設計が必要 インスタンス化できる スコープが狭い 初心者 向き プログラマー 向き イベントを 起こすときに 使う 23
  • 26. Copyright © 日本頭脳株式会社 All rights reserved. ボタンを配置しよう 開発タブ>挿入>ボタン(フォーム コントロール) 25 左上 ワーク
  • 27. Copyright © 日本頭脳株式会社 All rights reserved. ボタンの形を作ろう 26 +アイコンが表示されるので、 右下方向にドラッグする + ワーク
  • 28. Copyright © 日本頭脳株式会社 All rights reserved. 27 マクロの登録 開発タブ>挿入>ボタン(フォーム コントロール)>マクロの登録>新規作成 ワーク
  • 29. Copyright © 日本頭脳株式会社 All rights reserved. 28 2つの画面を意識しよう Excel(表) 開発用の画面 VBE (Visual Basic Editor)
  • 30. Copyright © 日本頭脳株式会社 All rights reserved. 29 ボタンのラベルを変更しよう Excel>ボタンを右クリック>テキストの編集 ボタン以外のところをクリック すると、文字が確定する ワーク
  • 31. Copyright © 日本頭脳株式会社 All rights reserved. シートモジュール ブックモジュール 標準モジュール 30 参考)シート・ブック・標準モジュールの違い 使わない理由 その1:Publicが使えない その2:エラー箇所が不明
  • 33. Copyright © 日本頭脳株式会社 All rights reserved. プロシージャとは プロシージャ(Procedure)=ひとまとまりの処理 Function 処理名() ・・・・・・・ ・・・・・・・ ・・・・・・・ End Function Sub 処理名() ・・・・・・・ ・・・・・・・ ・・・・・・・ End Sub プロシージャは、標準プロシージャとイベントプロシージャに分類される。 FunctionもSubも標準プロシージャに分類されるが、Subは適用範囲が狭い。 「Sub」は「Subroutine(サブルーチン)」の略で、戻り値を返せない片道切符の処理のこと。 半角スペース 32 知識
  • 34. Copyright © 日本頭脳株式会社 All rights reserved. 33 ボタンクリック時の処理 Sub ボタン1_Click() End Sub 何も書かれていない ボタンをクリックしても、 何も起きない
  • 35. Copyright © 日本頭脳株式会社 All rights reserved. メッセージを表示する 34 Msgbox “メッセージ”, 表示形式 vbOKCancel vbCritical vbYesNoCancel ※表示形式に何も入力しないと、OKボタンだけ表示される ダブルクォーテーション 知識
  • 36. Copyright © 日本頭脳株式会社 All rights reserved. 35 便利機能を活用しよう カンマ「,」を入力した瞬間 に、候補が表示される ↑↓で選んでTAB (またはダブルクリック) MsgBox+スペースを入力す ると、入力補助が表示される 知識
  • 37. Copyright © 日本頭脳株式会社 All rights reserved. 36 メッセージを表示しよう Sub ボタン1_Click() MsgBox "処理を開始します。よろしいですか?", vbOKCancel End Sub 書き終わったら、ボタンを クリックしてみよう ワーク
  • 38. Copyright © 日本頭脳株式会社 All rights reserved. 37 メッセージを表示しよう ワーク
  • 40. Copyright © 日本頭脳株式会社 All rights reserved. <全体像>処理の内容 '***************************************** '* エラーチェック処理 '***************************************** '最初に、セルの色をクリアする '処理開始の確認メッセージを表示する 'キャンセルされた場合は、処理を終了する '勤務表シートのC5:M35範囲内で、セル1つずつ繰り返し処理を行う 'セルの値の有無により、分岐処理を行う '値がある場合 'セルの値を表示する '文字の両端が数値でない場合、セルの色を赤にする 'それ以外の場合は、セルの色をクリアする '値がない場合 'セルの色を薄いグレーにする 勤務表データに、時間以外の文字が混入していないかチェックする エラーの場合は赤、空欄の場合は薄いグレーにし、エラーがない場合は色をクリアする 39
  • 41. Copyright © 日本頭脳株式会社 All rights reserved. 40 Functionを書いてみよう Sub ボタン1_Click() MsgBox "処理を開始します。よろしいですか?", vbOKCancel End Sub '********************************************** '* エラーチェック処理 '********************************************** Function エラーチェック処理() End Function ワーク
  • 42. Copyright © 日本頭脳株式会社 All rights reserved. 41 コメントを書く Sub ボタン1_Click() MsgBox "処理を開始します。よろしいですか?", vbOKCancel End Sub '********************************************** '* エラーチェック処理 '********************************************** 知識 シングルクォーテーション「’」を付けるとコメントになる 例)
  • 43. Copyright © 日本頭脳株式会社 All rights reserved. 42 コメントを書いてみよう '********************************************** '* エラーチェック処理 '********************************************** Function エラーチェック処理() '最初に、セルの色をクリアする End Function ワーク
  • 44. Copyright © 日本頭脳株式会社 All rights reserved. 43 命令の仕方 どのシートの、どのセルの、何を、このように変えなさい シート.セル.〇〇〇 = 値(色) 知識
  • 45. Copyright © 日本頭脳株式会社 All rights reserved. 44 何を変えるのか どのシート? Sheets(“シート名”) どのセル? 範囲を指定 Range(“範囲”) 特定セルを指定 Cells(行番号,列番号) 何を変える? 値を変えるなら Value 色を変えるなら Interior.ColorIndex Sheets(“シート名”). Range(“範囲”).Value 知識 どのシートの、どのセルの、何を、このように変えなさい
  • 46. Copyright © 日本頭脳株式会社 All rights reserved. セルの指定方法 セルの範囲指定方法は2種類ある Range(“範囲”) Cells(行番号,列番号) Range(“B2:C3”) Cells(2,3) 45 知識 行や列を順番に処理していくとき、数値 だと足し算ができるので使いやすい Excelシートの表示形式と同じ表示なの で、ぱっと見てわかりやすい
  • 47. Copyright © 日本頭脳株式会社 All rights reserved. 46 どう変えるのか 値を「100」に変える ~.Value=100 値を「あいう」に変える ~.Value=”あいう” 色を「赤」に変える ~.Interior.ColorIndex=3 色をクリアする ~.Interior.ColorIndex=0 色を「薄いグレー」に変える ~.Interior.Color =RGB(217, 217, 217) 知識 どのシートの、どのセルの、何を、このように変えなさい
  • 48. Copyright © 日本頭脳株式会社 All rights reserved. セルの色の変え方 色の指定方法は2種類ある ColorIndex Color 黒 1 白 2 赤 3 緑 4 青 5 : 47 知識 黒 RGB(0,0,0) 白 RGB(255,255,255) : あらかじめ 決められた色 自由に指定
  • 49. Copyright © 日本頭脳株式会社 All rights reserved. 48 セルの色を変えてみよう '********************************************** '* エラーチェック処理 '********************************************** Function エラーチェック処理() '最初に、セルの色をクリアする Sheets("勤務表").Range("C5:M35").Interior.ColorIndex = 3 End Function 「3」「4」「5」など試してみる ワーク
  • 50. Copyright © 日本頭脳株式会社 All rights reserved. 49 プログラムを単独で実行してみよう '********************************************** '* エラーチェック処理 '********************************************** Function エラーチェック処理() '最初に、セルの色をクリアする Sheets("勤務表").Range("C5:M35").Interior.ColorIndex = 3 End Function 赤枠内のどこかをクリックして、F5を押す ワーク
  • 51. Copyright © 日本頭脳株式会社 All rights reserved. 補足)メニューボタン 実行(F5) 中止 「■」ボタンは、正しくは「リセット」という 「Ctrl+Break」がない場合は、「Winロゴキー+U」から「スクリーンボード」を使って入力 中断 「F5」で実行、「Ctrl+Break」で中断、は覚えておく! 知識
  • 53. Copyright © 日本頭脳株式会社 All rights reserved. 処理を呼び出す Call 処理名 52 知識
  • 54. Copyright © 日本頭脳株式会社 All rights reserved. 53 処理を呼び出してみよう Sub ボタン1_Click() Call エラーチェック処理 End Sub '********************************************** '* エラーチェック処理 '********************************************** Function エラーチェック処理() '最初に、セルの色をクリアする Sheets("勤務表").Range("C5:M35").Interior.ColorIndex = 0 MsgBox "処理を開始します。よろしいですか?", vbOKCancel End Function ボタンをクリックして確認! ワーク メッセージ表示処理を 移動 「0」にする
  • 56. Copyright © 日本頭脳株式会社 All rights reserved. <全体像>処理の内容 '***************************************** '* エラーチェック処理 '***************************************** '最初に、セルの色をクリアする '処理開始の確認メッセージを表示する 'キャンセルされた場合は、処理を終了する '勤務表シートのC5:M35範囲内で、セル1つずつ繰り返し処理を行う 'セルの値の有無により、分岐処理を行う '値がある場合 'セルの値を表示する '文字の両端が数値でない場合、セルの色を赤にする 'それ以外の場合は、セルの色をクリアする '値がない場合 'セルの色を薄いグレーにする 勤務表データに、時間以外の文字が混入していないかチェックする エラーの場合は赤、空欄の場合は薄いグレーにし、エラーがない場合は色をクリアする 55
  • 57. Copyright © 日本頭脳株式会社 All rights reserved. 分岐処理 分岐の書き方は2種類ある If 条件 Then ・・・・・・・ Else ・・・・・・・ End If Select Case 変数 Case 値1 Case 値2 Case Else End Select 順位が3位以上ならメダル をください。 順位が1位なら金を、2位 なら銀をください。 「If」は、値の大小を比較する場合なども含めて幅広く使用できる。 「Select Case」は、値が一致する場合にのみ使用する。 知識
  • 58. Copyright © 日本頭脳株式会社 All rights reserved. 57 条件の書き方 値が100の場合 .Value=100 値が100を超える場合 .Value>100 値が100以下の場合 .Value<=100 値がない場合 .Value=”” 値がある場合 .Value<>”” =値が空ではない場合 知識 空であることを示す ノット・イコールを示す
  • 59. Copyright © 日本頭脳株式会社 All rights reserved. 58 分岐処理を書いてみよう Function エラーチェック処理() '最初に、セルの色をクリアする Sheets("勤務表").Range("C5:M35").Interior.ColorIndex = 0 '勤務表シートのD5セルの値の有無により、分岐処理を行う '値がある場合 '値がない場合 'セルの色を薄いグレーにする End Function • まずは、コメントで処理を書く • 終わったら、分岐処理だけ書く ワーク • 「勤務表シートのD5セルの値」は? • 値がない場合=値が空ではない場合
  • 60. Copyright © 日本頭脳株式会社 All rights reserved. 59 分岐処理を書いてみよう Function エラーチェック処理() '最初に、セルの色をクリアする Sheets("勤務表").Range("C5:M35").Interior.ColorIndex = 0 '勤務表シートのD5セルの値の有無により、分岐処理を行う '値がある場合 If Sheets("勤務表").Range(“D5").Value <> "" Then ‘セルの値を表示する '値がない場合 Else 'セルの色を薄いグレーにする End If End Function ワーク
  • 61. Copyright © 日本頭脳株式会社 All rights reserved. 値の表示 Debug.Print 値 表示>イミディエイトウィンドウ プログラムが正しく動いているかを確認する ために、開発途中でよく使う イミディエイトウィンドウ 知識
  • 62. Copyright © 日本頭脳株式会社 All rights reserved. 61 セルの値を表示してみよう Function エラーチェック処理() '最初に、セルの色をクリアする Sheets("勤務表").Range("C5:M35").Interior.ColorIndex = 0 '勤務表シートのD5セルの値の有無により、分岐処理を行う '値がある場合 If Sheets("勤務表").Range(“D5").Value <> "" Then 'セルの値を表示する '値がない場合 Else 'セルの色を薄いグレーにする End If End Function ワーク
  • 63. Copyright © 日本頭脳株式会社 All rights reserved. 62 セルの値を表示してみよう Function エラーチェック処理() '最初に、セルの色をクリアする Sheets("勤務表").Range("C5:M35").Interior.ColorIndex = 0 '勤務表シートのD5セルの値の有無により、分岐処理を行う '値がある場合 If Sheets("勤務表").Range(“D5").Value <> "" Then ‘セルの値を表示する Debug.Print Sheets("勤務表").Range(“D5").Value '値がない場合 Else 'セルの色を薄いグレーにする End If End Function ワーク
  • 64. Copyright © 日本頭脳株式会社 All rights reserved. 63 セルの色を変えてみよう Function エラーチェック処理() '最初に、セルの色をクリアする Sheets("勤務表").Range("C5:M35").Interior.ColorIndex = 0 '勤務表シートのD5セルの値の有無により、分岐処理を行う '値がある場合 If Sheets("勤務表").Range(“D5").Value <> "" Then ‘セルの値を表示する Debug.Print Sheets("勤務表").Range(“D5").Value '値がない場合 Else 'セルの色を薄いグレーにする End If End Function ここでは、「.Interior.Color」を使う 薄いグレーはRGB(217, 217, 217) ワーク
  • 65. Copyright © 日本頭脳株式会社 All rights reserved. 64 セルの色を変えてみよう Function エラーチェック処理() '最初に、セルの色をクリアする Sheets("勤務表").Range("C5:M35").Interior.ColorIndex = 0 '勤務表シートのD5セルの値の有無により、分岐処理を行う '値がある場合 If Sheets("勤務表").Range(“D5").Value <> "" Then ‘セルの値を表示する Debug.Print Sheets("勤務表").Range(“D5").Value '値がない場合 Else 'セルの色を薄いグレーにする Sheets("勤務表").Range(“D5").Interior.Color = RGB(217, 217, 217) End If End Function ワーク
  • 66. 65 B r e a k T i m e
  • 69. Copyright © 日本頭脳株式会社 All rights reserved. 68 引数・戻り値とは 引数 (インプット) 戻り値 (アウトプット) 処理 知識
  • 70. Copyright © 日本頭脳株式会社 All rights reserved. 69 引数・戻り値の例 Today()なし 今日の日付 SUM(…)範囲 合計値 MsgBox(…)テキスト 押されたボタン 引数 戻り値処理 知識
  • 71. Copyright © 日本頭脳株式会社 All rights reserved. 70 引数・戻り値の例 表示テキスト 表示形式 引数 戻り値処理 MsgBox(…) 押されたボタンの値 ・OKをクリック →1(vbOK) ・Cancelをクリック →2(vbCancel) 知識
  • 72. Copyright © 日本頭脳株式会社 All rights reserved. 71 メッセージで選択された値を取得する メッセージを表示するだけなら MsgBox “メッセージ”, 表示形式 メッセージを表示して、さらに値を取得するなら MsgBox(“メッセージ”, 表示形式) OKをクリック →vbOK Cancelをクリック →vbCancel 知識
  • 73. Copyright © 日本頭脳株式会社 All rights reserved. 72 分岐処理とメッセージの組み合わせ もし、メッセージの値が「キャンセル」なら、そのときは ・・・ 以上 If MsgBox(“メッセージ”, 表示形式) = vbCancel Then ・・・ End If 知識
  • 74. Copyright © 日本頭脳株式会社 All rights reserved. 73 復習)条件 値が100の場合 .Value=100 値が100を超える場合 .Value>100 値が100以下の場合 .Value<=100 値がない場合 .Value=”” 値が空ではない場合 .Value<>”” 知識
  • 75. Copyright © 日本頭脳株式会社 All rights reserved. <全体像>処理の内容 '***************************************** '* エラーチェック処理 '***************************************** '最初に、セルの色をクリアする '処理開始の確認メッセージを表示する 'キャンセルされた場合は、処理を終了する '勤務表シートのC5:M35範囲内で、セル1つずつ繰り返し処理を行う 'セルの値の有無により、分岐処理を行う '値がある場合 'セルの値を表示する '文字の両端が数値でない場合、セルの色を赤にする 'それ以外の場合は、セルの色をクリアする '値がない場合 'セルの色を薄いグレーにする 勤務表データに、時間以外の文字が混入していないかチェックする エラーの場合は赤、空欄の場合は薄いグレーにし、エラーがない場合は色をクリアする 74 • メッセージを表示する • メッセージで選択された値を取得する • 値によって分岐処理をする
  • 76. Copyright © 日本頭脳株式会社 All rights reserved. 75 メッセージによる分岐処理を書いてみよう '********************************************** '* エラーチェック処理 '********************************************** Function エラーチェック処理() '最初に、セルの色をクリアする Sheets("勤務表").Range("C5:M35").Interior.ColorIndex = 0 '処理開始の確認メッセージを表示する : End Function ワーク
  • 77. Copyright © 日本頭脳株式会社 All rights reserved. 76 メッセージによる分岐処理を書いてみよう '********************************************** '* エラーチェック処理 '********************************************** Function エラーチェック処理() '最初に、セルの色をクリアする Sheets("勤務表").Range("C5:M35").Interior.ColorIndex = 0 '処理開始の確認メッセージを表示する If MsgBox("処理を開始します。よろしいですか?", vbOKCancel) = vbCancel Then End If : End Function ワーク
  • 78. Copyright © 日本頭脳株式会社 All rights reserved. 処理の終了 Exit Function Function 処理名() Exit Function End Function これ以降の処理は実行されない ここまでの処理は実行される 知識
  • 79. Copyright © 日本頭脳株式会社 All rights reserved. 78 処理の終了を書いてみよう '********************************************** '* エラーチェック処理 '********************************************** Function エラーチェック処理() '最初に、セルの色をクリアする Sheets("勤務表").Range("C5:M35").Interior.ColorIndex = 0 '処理開始の確認メッセージを表示する If MsgBox("処理を開始します。よろしいですか?", vbOKCancel) = vbCancel Then 'キャンセルされた場合は、処理を終了する End If : End Function ワーク
  • 80. Copyright © 日本頭脳株式会社 All rights reserved. 79 処理の終了を書いてみよう '********************************************** '* エラーチェック処理 '********************************************** Function エラーチェック処理() '最初に、セルの色をクリアする Sheets("勤務表").Range("C5:M35").Interior.ColorIndex = 0 '処理開始の確認メッセージを表示する If MsgBox("処理を開始します。よろしいですか?", vbOKCancel) = vbCancel Then 'キャンセルされた場合は、処理を終了する Exit Function End If : End Function ボタンクリックで確認 ワーク
  • 82. Copyright © 日本頭脳株式会社 All rights reserved. <全体像>処理の内容 '***************************************** '* エラーチェック処理 '***************************************** '最初に、セルの色をクリアする '処理開始の確認メッセージを表示する 'キャンセルされた場合は、処理を終了する '勤務表シートのC5:M35範囲内で、セル1つずつ繰り返し処理を行う 'セルの値の有無により、分岐処理を行う '値がある場合 'セルの値を表示する '文字の両端が数値でない場合、セルの色を赤にする 'それ以外の場合は、セルの色をクリアする '値がない場合 'セルの色を薄いグレーにする 勤務表データに、時間以外の文字が混入していないかチェックする エラーの場合は赤、空欄の場合は薄いグレーにし、エラーがない場合は色をクリアする 81
  • 83. Copyright © 日本頭脳株式会社 All rights reserved. 繰り返し処理(ループ) 繰り返し処理の書き方は、大きく分けて2種類ある For ・・・・・・・ ・・・・・・・ ・・・・・・・ Next Do While 実行条件 ・・・・・・・ ・・・・・・・ ・・・・・・・ Loop 1行目から10行目まで 計算してください 行数が100未満の間は ずっと計算してください 「Do While」は、指定した条件を満たさないと永遠に処理をし続けるという、 いわゆる「無限ループ」を起こしやすいため、「For」のほうが安全性が高い。 82 知識
  • 84. Copyright © 日本頭脳株式会社 All rights reserved. 繰り返し処理(ループ) Forの書き方は2種類ある For 始点 To 終点 ・・・・・・・ ・・・・・・・ ・・・・・・・ Next For each 要素 In 範囲 ・・・・・・・ ・・・・・・・ ・・・・・・・ Next 1行目から10行目まで 計算してください A1:D8の中にあるセル1個ずつ この文書の中にある図形1個ずつ 「Do While」は、指定した条件を満たさないと永遠に処理をし続けるという、 いわゆる「無限ループ」を起こしやすいため、「For」のほうが安全性が高い。 83 知識
  • 85. Copyright © 日本頭脳株式会社 All rights reserved. 84 For each の使い方 ‘勤務表シートのC5:M35範囲内で、セル1つずつ・・ For each cell In Sheets("勤務表").Range("C5:M35") ・・・・・・・ ・・・・・・・ ・・・・・・・ Next • 名前は何でもよい • 次々に値が変わっていくので「変数」という cell 知識
  • 86. Copyright © 日本頭脳株式会社 All rights reserved. 85 Forループを書いてみよう Function エラーチェック処理() : '勤務表シートのC5:M35範囲内で、セル1つずつ繰り返し処理を行う '勤務表シートのD5セルの値の有無により、分岐処理を行う '値がある場合 If Sheets("勤務表").Range("D5").Value <> "" Then 'セルの値を表示する Debug.Print Sheets("勤務表").Range("D5").Value '値がない場合 Else 'セルの色を薄いグレーにする Sheets("勤務表").Range("D5").Interior.Color = RGB(217, 217, 217) End If End Function ワーク
  • 87. Copyright © 日本頭脳株式会社 All rights reserved. 86 Forループを書いてみよう Function エラーチェック処理() : '勤務表シートのC5:M35範囲内で、セル1つずつ繰り返し処理を行う For Each cell In Sheets("勤務表").Range("C5:M35") '勤務表シートのD5セルの値の有無により、分岐処理を行う '値がある場合 If Sheets("勤務表").Range("D5").Value <> "" Then 'セルの値を表示する Debug.Print Sheets("勤務表").Range("D5").Value '値がない場合 Else 'セルの色を薄いグレーにする Sheets("勤務表").Range("D5").Interior.Color = RGB(217, 217, 217) End If Next End Function ワーク
  • 88. Copyright © 日本頭脳株式会社 All rights reserved. 87 既存のプログラムを、Forループの中に入れてみよう Function エラーチェック処理() : '勤務表シートのC5:M35範囲内で、セル1つずつ繰り返し処理を行う For Each cell In Sheets("勤務表").Range("C5:M35") '勤務表シートのD5セルの値の有無により、分岐処理を行う '値がある場合 If Sheets("勤務表").Range("D5").Value <> "" Then 'セルの値を表示する Debug.Print Sheets("勤務表").Range("D5").Value '値がない場合 Else 'セルの色を薄いグレーにする Sheets("勤務表").Range("D5").Interior.Color = RGB(217, 217, 217) End If Next End Function cell.Interior.ColorIndex cell.Value ワーク
  • 89. Copyright © 日本頭脳株式会社 All rights reserved. 88 既存のプログラムを、Forループの中に入れてみよう Function エラーチェック処理() : '勤務表シートのC5:M35範囲内で、セル1つずつ繰り返し処理を行う For Each cell In Sheets("勤務表").Range("C5:M35") '勤務表シートのD5セルの値の有無により、分岐処理を行う '値がある場合 If cell.Value <> "" Then 'セルの値を表示する Debug.Print cell.Value '値がない場合 Else 'セルの色を薄いグレーにする cell.Interior.Color = RGB(217, 217, 217) End If Next End Function Sheets("勤務表").Range("D5") ↓ cell コメントも修正しておこう ワーク
  • 91. Copyright © 日本頭脳株式会社 All rights reserved. <全体像>処理の内容 '***************************************** '* エラーチェック処理 '***************************************** '最初に、セルの色をクリアする '処理開始の確認メッセージを表示する 'キャンセルされた場合は、処理を終了する '勤務表シートのC5:M35範囲内で、セル1つずつ繰り返し処理を行う 'セルの値の有無により、分岐処理を行う '値がある場合 'セルの値を表示する '文字の両端が数値でない場合、セルの色を赤にする 'それ以外の場合は、セルの色をクリアする '値がない場合 'セルの色を薄いグレーにする 勤務表データに、時間以外の文字が混入していないかチェックする エラーの場合は赤、空欄の場合は薄いグレーにし、エラーがない場合は色をクリアする 90
  • 92. Copyright © 日本頭脳株式会社 All rights reserved. さまざまな関数 91 左側から指定した文字数を抽出 Left(文字列,文字数) 例)Left(“あいうえお”, 1) →戻り値「あ」 右側から指定した文字数を抽出 Right(文字列,文字数) 例)Right(“あいうえお”, 1) →戻り値「お」 知識 質問1. セルの値(cell.Value)の左側から1文字、はどのように書けばよいですか? 質問2. セルの値(cell.Value)の右側から1文字、はどのように書けばよいですか?
  • 93. Copyright © 日本頭脳株式会社 All rights reserved. さまざまな関数 92 指定した値が数値かどうか判定 IsNumeric(値) 例)IsNumeric(“あ”) →戻り値「False」 例)IsNumeric(1) →戻り値「True」 知識 質問3. セルの値(cell.Value)の左側から1文字が数値かどうか、はどのように書 けばよいですか? 質問4. セルの値(cell.Value)の左側から1文字が数値である場合、という分岐処 理はどのように書けばよいですか? 正・誤を表す・・は「数値」で合っていますか?という意味
  • 94. Copyright © 日本頭脳株式会社 All rights reserved. 条件の組み合わせ 93 AND(~かつ~) If A = 1 And B = 1 Then bError = True End If OR(~または~) If A = 1 Or B = 1 Then bError = True End If AもBも、両方とも 1でないといけない AとBのいずれか一方が 1であればよい 組み合わせ方は2種類ある 知識
  • 95. Copyright © 日本頭脳株式会社 All rights reserved. 94 条件を組み合わせてみよう Function エラーチェック処理() : 'セルの値の有無により、分岐処理を行う '値がある場合 If cell.Value <> "" Then 'セルの値を表示する Debug.Print cell.Value '文字の両端が数値でない場合、セルの色を赤にする 'それ以外の場合は、セルの色をクリアする '値がない場合 : ワーク まずは分岐処理(If~)だけ書いてみよう
  • 96. Copyright © 日本頭脳株式会社 All rights reserved. 95 条件を組み合わせてみよう Function エラーチェック処理() : 'セルの値の有無により、分岐処理を行う '値がある場合 If cell.Value <> "" Then 'セルの値を表示する Debug.Print cell.Value '文字の両端が数値でない場合、セルの色を赤にする If IsNumeric(Left(cell.Value, 1)) = False Or _ IsNumeric(Right(cell.Value, 1)) = False Then 'それ以外の場合は、セルの色をクリアする Else End If '値がない場合 : ワーク
  • 97. Copyright © 日本頭脳株式会社 All rights reserved. 96 条件を組み合わせてみよう Function エラーチェック処理() : 'セルの値の有無により、分岐処理を行う '値がある場合 If cell.Value <> "" Then 'セルの値を表示する Debug.Print cell.Value '文字の両端が数値でない場合、セルの色を赤にする If IsNumeric(Left(cell.Value, 1)) = False Or _ IsNumeric(Right(cell.Value, 1)) = False Then 'それ以外の場合は、セルの色をクリアする Else End If '値がない場合 : ワーク .Interior.ColorIndexを使う (赤は3、クリアは0)
  • 98. Copyright © 日本頭脳株式会社 All rights reserved. 97 条件を組み合わせてみよう Function エラーチェック処理() : 'セルの値の有無により、分岐処理を行う '値がある場合 If cell.Value <> "" Then 'セルの値を表示する Debug.Print cell.Value '文字の両端が数値でない場合、セルの色を赤にする If IsNumeric(Left(cell.Value, 1)) = False Or _ IsNumeric(Right(cell.Value, 1)) = False Then cell.Interior.ColorIndex = 3 'それ以外の場合は、セルの色をクリアする Else cell.Interior.ColorIndex = 0 End If '値がない場合 : ワーク F5で確認
  • 99. Copyright © 日本頭脳株式会社 All rights reserved. 完成したプログラム Function エラーチェック処理() '最初に、セルの色をクリアする Sheets("勤務表").Range("C5:M35").Interior.ColorIndex = 0 '処理開始の確認メッセージを表示する If MsgBox("処理を開始します。よろしいですか?", vbOKCancel) = vbCancel Then 'キャンセルされた場合は、処理を終了する Exit Function End If '勤務表シートのC5:M35範囲内で、セル1つずつ繰り返し処理を行う For Each cell In Sheets("勤務表").Range("C5:M35") 'セルの値の有無により、分岐処理を行う '値がある場合 If cell.Value <> "" Then 'セルの値を表示する Debug.Print cell.Value '文字の両端が数値でない場合、セルの色を赤にする If IsNumeric(Left(cell.Value, 1)) = False Or _ IsNumeric(Right(cell.Value, 1)) = False Then cell.Interior.ColorIndex = 3 ‘その他の場合は、セルの色をクリアする Else cell.Interior.ColorIndex = 0 End If '値がない場合 Else 'セルの色を薄いグレーにする cell.Interior.Color = RGB(217, 217, 217) End If Next End Function 98
  • 101. Copyright © 日本頭脳株式会社 All rights reserved. チェックボタンをクリックしてみよう ワーク
  • 102. Copyright © 日本頭脳株式会社 All rights reserved. 101 実行結果 もう一度ボタンを押すと、 セルの色がクリアされる データを修正して もう一度ボタンを押すと、 赤色が表示されなくなる
  • 103. 102 B r e a k T i m e
  • 106. Copyright © 日本頭脳株式会社 All rights reserved. 変数とは 変数=値を格納する「箱」 String = 文字列 Integerは-32,768~32,767の整数を扱える。 ちなみに、Excelで扱える最大行数は1,048,576 行( Excel2007以降)。 ちなみに「Dim」は「Dimension」の略で、FORTRAN言語の名残りと言われている。 Integer = 整数 Boolean = 正誤 Long = 超整数 「s」を文字列として使います→ Dim s As String (宣言) 「s」に値を入れます→ s = “文字です” 「s」を表示します→ MsgBox s 105 知識
  • 107. Copyright © 日本頭脳株式会社 All rights reserved. 106 変数を使ってみよう①(String) Function エラーチェック処理() '文字列を格納する箱「sCell」を宣言する '勤務表シートのC5:M35範囲内で、セル1つずつ繰り返し処理を行う For Each cell In Sheets("勤務表").Range("C5:M35") ‘sCellに、cell.Valueを格納する ‘以降、cell.Valueの代わりにsCellを使う Next End Function ワーク
  • 108. Copyright © 日本頭脳株式会社 All rights reserved. 107 変数を使ってみよう① (String) Function エラーチェック処理() ‘文字列を格納する箱「sCell」を宣言する Dim sCell As String '勤務表シートのC5:M35範囲内で、セル1つずつ繰り返し処理を行う For Each cell In Sheets("勤務表").Range("C5:M35") ‘sCellに、cell.Valueを格納する sCell = cell.Value ‘以降、cell.Valueの代わりにsCellを使う If cell.Value <> "" Then Debug.Print sCell If IsNumeric(Left(sCell, 1)) = False Or _ IsNumeric(Right(sCell, 1)) = False Then : Next End Function ワーク
  • 109. Copyright © 日本頭脳株式会社 All rights reserved. 108 変数を使ってみよう②(Boolean) Function エラーチェック処理() Dim sCell As String ‘正誤を格納する箱「bLeft」「bRight」を宣言する '勤務表シートのC5:M35範囲内で、セル1つずつ繰り返し処理を行う For Each cell In Sheets("勤務表").Range("C5:M35") sCell = cell.Value ‘bLeftに、 IsNumeric(Left(sCell, 1))を格納する ‘bRightに、 IsNumeric(Right(sCell, 1))を格納する ‘以降、IsNumeric~の代わりに、bLeftまたはbRightを使う Next End Function ワーク
  • 110. Copyright © 日本頭脳株式会社 All rights reserved. 109 変数を使ってみよう②(Boolean) Function エラーチェック処理() Dim sCell As String Dim bLeft As Boolean Dim bRight As Boolean '勤務表シートのC5:M35範囲内で、セル1つずつ繰り返し処理を行う For Each cell In Sheets("勤務表").Range("C5:M35") sCell = cell.Value bLeft = IsNumeric(Left(sCell, 1)) bRight = IsNumeric(Right(sCell, 1)) ‘以降、IsNumeric~の代わりに、bLeftまたはbRightを使う If cell.Value <> "" Then : '文字の両端が数値でない場合、セルの色を赤にする If bLeft = False Or bRight = False Then : Next End Function ワーク
  • 111. Copyright © 日本頭脳株式会社 All rights reserved. 110 動作確認 ボタンを押して、動作が変わって いないことを確認しよう
  • 113. Copyright © 日本頭脳株式会社 All rights reserved. やりたいこと 処理1 知識 処理を小分けにする(外に出す) 勤務表 データチェック 処理2 処理3 利点1 スッキリして見やすくなる 利点2 処理を再利用できる 利点3 エラーを特定しやすくなる
  • 114. Copyright © 日本頭脳株式会社 All rights reserved. 113 やりたいこと 知識 色番号取得処理 (呼び出される側) エラーチェック処理 (呼び出す側) 色を番号ではなく名称で指定できるように、 「色番号取得処理」をつくる 色の名称 “赤” ”緑” 色番号 3 4 引数 戻り値
  • 115. Copyright © 日本頭脳株式会社 All rights reserved. 114 引数と戻り値がある処理の書き方 Function 処理名(引数名 As 引数の型) As 戻り値の型 処理名 = 値 End Function 知識 例) Function getColor(sColor As String) As Integer If sColor = “赤” Then getColor = 3 End If End Function 上記の処理を呼び出すとき) cell.Interior.ColorIndex = getColor(“赤") 「3」 戻り値として、何らかの値をセットする 戻り値として「3」をセットする
  • 116. Copyright © 日本頭脳株式会社 All rights reserved. 115 Functionを書いてみよう '********************************************** ‘* 色番号取得処理 '********************************************** Function getColor(sColor As String) As Integer Select Case sColor Case "赤" ‘赤の場合は戻り値に3をセットする Case "緑" ‘緑の場合は戻り値に4をセットする Case "クリア" ‘クリアの場合は戻り値に0をセットする End Select End Function ワーク 処理名は「getColor」とする 引数は、色名称(String型)とする 戻り値は、色番号(Integer型)とする
  • 117. Copyright © 日本頭脳株式会社 All rights reserved. 116 Functionを書いてみよう '********************************************** ‘* 色番号取得処理 '********************************************** Function getColor(sColor As String) As Integer Select Case sColor Case "赤" getColor = 3 Case "緑" getColor = 4 Case "クリア" getColor = 0 End Select End Function ワーク 処理名は「getColor」とする 引数は、色名称(String型)とする 戻り値は、色番号(Integer型)とする
  • 118. Copyright © 日本頭脳株式会社 All rights reserved. 117 色番号取得処理を呼び出してみよう Function エラーチェック処理() : '勤務表シートのC5:M35範囲内で、セル1つずつ繰り返し処理を行う For Each cell In Sheets("勤務表").Range("C5:M35") : '文字の両端が数値でない場合、セルの色を赤にする If bLeft = False Or bRight = False Then cell.Interior.ColorIndex = 3 'その他の場合は、セルの色をクリアする Else cell.Interior.ColorIndex = 0 End If : Next End Function ワーク 色を名称で指定してみよう 色を名称で指定してみよう
  • 119. Copyright © 日本頭脳株式会社 All rights reserved. 118 色番号取得処理を呼び出してみよう Function エラーチェック処理() : '勤務表シートのC5:M35範囲内で、セル1つずつ繰り返し処理を行う For Each cell In Sheets("勤務表").Range("C5:M35") : '文字の両端が数値でない場合、セルの色を赤にする If bLeft = False Or bRight = False Then cell.Interior.ColorIndex = getColor("赤") 'その他の場合は、セルの色をクリアする Else cell.Interior.ColorIndex = getColor("クリア") End If : Next End Function ワーク
  • 121. Copyright © 日本頭脳株式会社 All rights reserved. Withとは 120 繰り返し書くのが面倒なので、省略する方法 知識 勤務表シートのA1セルの値を「1」にする 勤務表シートのA1セルの値を「2」にする 勤務表シートのB1セルの値を「3」にする With 勤務表シート A1セルの値を「1」にする A1セルの値を「2」にする B1セルの値を「3」にする End With
  • 122. Copyright © 日本頭脳株式会社 All rights reserved. Withとは 121 繰り返し書くのが面倒なので、省略する方法 知識 Sheets(“勤務表”).Range(“A1”).Value = 1 Sheets(“勤務表”).Range(“A1”).Value = 2 Sheets(“勤務表”).Range(“B1”).Value = 3 With Sheets(“勤務表”) .Range(“A1”).Value = 1 .Range(“A1”).Value = 2 .Range(“B1”).Value = 3 End With 「.」をつけ忘れずに!
  • 123. Copyright © 日本頭脳株式会社 All rights reserved. Withの入れ子構造(「ネスト」と言う) 122 知識 With Sheets(“勤務表”) .Range(“A1”).Value = 1 .Range(“A1”).Value = 2 .Range(“B1”).Value = 3 End With With Sheets(“勤務表”) With .Range(“A1”) .Value = 1 .Value = 2 End With .Range(“B1”).Value = 3 End With
  • 124. Copyright © 日本頭脳株式会社 All rights reserved. 123 Withを使ってみよう 例) Function サンプル処理() Sheets("勤務表").Range("C5").Interior.ColorIndex = 0 If Sheets("勤務表").Range("C5") <> "" Then Sheets("勤務表").Range("C5").Interior.ColorIndex = 4 Else Sheets("勤務表").Range("C5").Interior.ColorIndex = 0 End If End Function ワーク
  • 125. Copyright © 日本頭脳株式会社 All rights reserved. 124 Withを使ってみよう 例) Function サンプル処理() With Sheets("勤務表").Range("C5") .Interior.ColorIndex = 0 If .Value <> "" Then .Interior.ColorIndex = 4 Else .Interior.ColorIndex = 0 End If End With End Function ワーク