プログラム入門(EXCEL VBA によるプログラムの学習)

(未稿の項目は作成していません、項目が変わる可能性があります。ご容赦下さい。
 1.EXCEL VBAの準備     

1.1.VBAエディタを開く
1.2.プログラムを記述する
1.3.実行ボタンの作成
1.4.エラー表示(例)



2.変数と型の宣言

2.1.2進法と16進法
2.2.変数宣言
2.3.代表的な型宣言
2.3.変数宣言エラー
2.4.配列とユーザ定義変数


3.演算・文字処理

3.1.演算の規則
3.2.条件判断
3.3.文字列



 
4.演算・文字処理

4.1.分岐
4.2.ループ
4.3.システムエラー分岐






5.ユーザ関数(未稿)

5.1.関数(Sub)
5.2.関数(Functuin)
5.3.変数の受け渡し
5.4.関数の参照(CALL)



6.EXCEL VBAmp概要(未稿)

6.1.オブジェクトの階層構造)
6.2.セルの操作
6.3.シートの操作
6.4.ブックの操作
6.5.デバッグツールの概要

 
 7.ユーザフォーム(未稿)

7.1.ユーザフォーム
7.2.ツールボックス
6.3.ボタン
6.4.ラベル
6.5.テキストBOX
6.6.リストボックス
5.7.チェックボックス
5.8.オプションボタン
                     
サンプルプログラム
戻る 進む


3.演算・文字処理

3.1.演算の規則

演算の規則
1)四則演算

四則演算はEXCELのセルの計算式に同じ

  @加算: c = a + b
  A減算: c = a - b
  B乗算: c = a * b

  C除算
   c = a / b
   c の変数宣言(整数と浮動小数点)によって、値が異なるので、プログラム作成時は注意
が必要(小数点以下の処理)

  Dべき乗
   c = a ^ b


2)演算の優先順位

四則演算が混合した式では、演算の優先順は一般の数学式に準じる。
3)カッコ「()」

一般の数式と同様、()”カッコ”を用いて演算順序をコントロールする。
大カッコ、中カッコなどの表現は無く、全てカッコを使用する。
カッコは関数で使用する「引数」の表現等tの用途にも使用する(後の項参照)

4)論理演算(Or,And,Xor,Eqv)

ビットの論理演算

@ a Or b:a、b いずれかのビットが「1」ならば結果は「1」(両方「1」でも結果は「1」)
      それ以外は「0」
A a And b:a、b 両方のビットが「1」ならば結果は「1」それ以外は「0」

B a Xor b:a、bのビットが不一致ならば結果は「1」(不一致:A=1且つB=0またはA=0且つB=1)
  それ以外は「0」

C a Eqv b:a、b 両方のビットが一致ならば結果は
「1」(一致:A=1且つB=1またはA=0且つB=0)
  または、a、b のビットが不一致ならば結果は「1」(不一致:A=1且つB=0またはA=0且つB=1)
  それ以外は「0」
5)演算の組込関数

演算に使用する組み込み関数は、EXCELのセルで使用する関数と、VBAで使用する関数で
異なる場合がある。

  例)ルート
    EXCEL関数 「=sqrt(数字)」
    VBA 関数 「Sqr(数字)」 

演算の組み込み関数のうち、代表的なものを下記に記す

@三角関数
 ・Sin(ラジアン角)
 ・Cos(ラジアン角)
 ・Tan(ラジアン角)

 他の三角関数は上記を元に計算式をたてる。
 
ALog(数字)
  自然体数(e)を求める

 常用対数を求める時は、常用対数= Log(数字)/Log(10)
  
 BAbs(数字)
   絶対値を得る



3.2.条件判断
条件判断
1)比較

比較は「if」、「for」、「do」等の様な分岐、繰り返しの指示と組み合わせて使用する。(条件判断)
 (詳細は後述する「分岐の項」を参照の事)

 @ a=5 aが5に等しい時(5のみ対象)
 A a<5 aが5未満の時(5は含まれない)
 B a<=5 aが5以下の時(5が含まれる)
 C a>5 aが5を超える時(5は含まれない)
 E a>=5 aが5以上の時(5が含まれる)
 F a<>5 aが5に等しくない時(5以外の全てが対象)


2)論理式

比較と同様、「if」、「for」、「do」等の様な分岐、繰り返しの指示と組み合わせて使用する。(条件判断)

@Or:"丸" Or "青"→丸 または 青 で"真"
  
AAnd:"丸" And "青"→丸 で且つ 青 で"真"

BXor:"丸" Xor "青"→「丸 で且つ 青 でないもの」 または
           「青 で且つ 丸 でないもの」 のいずれかで"真"

CEqv:"丸" Eqv "青"→「丸 で且つ 青 のもの」 または
           「丸 でなく 且つ 青 でないもの」のいずれかで"真"



3.3.文字列
1)文字コード(半角文字)
文字コードの中に、印字装置及び通信装置への制御コードも含まれる。

ASCIIコードの場合)

上位ビット

制御コード

英数字・記号コード

000

001

010

011

100

101

110

111





0000

NULL

DLE

空白

0

@

P

`

p

0001

SOH

DC1

!

1

A

Q

a

q

0010

STX

DC2

"

2

B

R

b

r

0011

ETX

DC3

#

3

C

S

c

s

0100

EOT

DC4

$

4

D

T

d

t

0101

ENQ

NAC

%

5

E

U

e

u

0110

ACK

SYN

&

6

F

V

f

v

0111

BELL

ETB

'

7

G

W

g

w

1000

BS

CAN

(

8

H

X

h

x

1001

HT

EM

)

9

I

Y

i

y

1010

LF

SUB

*

:

J

Z

j

z

1011

VT

ESC

+

;

K

[

k

{

1100

FF

FS

,

<

L

(逆スラッシュ)

l

|

1101

CR

GS

-

=

M

]

m

}

1110

SO

RS

.

>

N

^

n

~

1111

SI

US

/

?

O

_

o

DELL

例)A1000 0001
              1(0011 0001)


2)JIS漢字コード

1バイトのJISコードの他に、漢字を表す為に制定された2バイトのコード。
  以下の3種類がJISで制定されている。

    a.基本的文字の第一水準
    b.後に追加された第二水準
    c.JIS補助漢字
(コード表は省略)
3)文字列の連結

文字列の連結は & 記号
によって行う。

  例)
  a = 5
  b = "今月は"
  d=b & a & "月です"

  文字を直接指定する時は ” ” 記号で囲う。
  上記の例では、「a=5」は本来整数だが、EXCEL VBAでは自動的に文字と見なして連結する。


4)制御文字、文字コードの入力

 @Chr(数字)
  制御文字、文字をを文字コードで指定したいときに使用する。
  例)「”」ダブルクオーテーションの場合
    chr(&H22)

  A組み込み定数を使用する
   例)vbTab:タブの制御コード
     vbCrLf:改行(キャリッジリターンとラインフィード)の制御コード

5)文字の分割

文字列の分割は組み込み関数を使用する。

 @Left(文字列,文字数)
  文字列の左から文字数分切り取る。

 ARightt(文字列,文字数)
  文字列の右から文字数分切り取る。

 BMid(文字列,文字位置、文字数)
  文字列の左から数えて文字位置の所を
  先頭として、文字数分切り取る。

 CLen(文字)
  文字数を得る
6)スペースの処理
EXCELで、外部データの取り込み(Textファイル)を行った時、文字データの左右に不要な
スペースが付いている場合がある。下記関数にてスペースの処理が行える。

@LTrim(文字列式) 左側のスペースを削除

  ARTrim(文字列式)右側のスペースを削除

  BTrim(文字列式) 両側のスペースを削除

CSpace(数字) 数字文のスペースを入れる
7)文字の変換

@Ucase(文字列式)大文字に変換
  指定された文字列を全て大文字に変換する。
 
ALcase(文字列式) 小文字に変換
  指定された文字列を全て小文字に変換する。
 
BStrConv(文字列式,変換形式)
  大文字、小文字、半角./全角文字、ひらがな、カタカナ等の文字変換を行う(詳細は別項参照)

 CAsc(文字) 文字をASCIIコードに変換

 DChr(文字コード)ASCIIコードを文字に変換

 EVal(文字列式) 文字列を数字に変換

 FStr(数値) 数値を文字列に変換

8)日付・時刻処理

@現在時刻
・date:現在年月日日時
・Time:現在時刻
・Now:現在年月日日時・時刻

A年月日の分解
 ・Year(Date):年
 ・Month(Date):月
 ・Day(Date):日

B時分秒の分解
 ・Hour(Time):時
 ・Minute(Time):分
 ・Second(Time):秒

C曜日を知る
 ・Weekday(Date)
  結果は1〜7の数値で返るので、同数値を元に曜日に直す。
  1→日曜日〜7→土曜日




戻る 進む 株式会社 I.T.オフィス TOPページ
・商用を除き、この資料(一連のホームページ・素材)を自由に流用してかまいません。・商用を除き、このホームページへのLINKは自由に行ってかまいません。(連絡は不要です)・本資料の使用・流用に関するいかなる損害も当社は一切の責任を負いませんのでご承知下さい。・本資料の著作権は株式会社 I.T.オフィスにあります。
担当:システム技術担当 伊藤( Mail:k.itou@itoffice.jp )