2006年11月19日

定数

unsignedのint定数は数値の後ろにUを付きます
例:5000U
long intの定数は数値の後ろにLを付きます。
例:-2000L
unsigned long intの場合、後ろにULを付きます。
例:4000UL
floatの定数は、数値の後ろにFを付きます
例:1.23F
123e-2F
long doubleの定数は、後ろにLを付きます
例:1.23L
0.123E1L

文字列の終端コード:'\0'
文字列定数をchar配列に代入できるのは初期化宣言時のみです。
Case 1:
char str[6] = "hello" はOK

Case 2:
char str[6];
str = "hello"はNG

最近会ったNullの場合の処理

CInt("") --> エラー
IsNumeric("") --> False
Split("", ":") --> array( 0 To -1)
Split(":", ":") --> array("", "")

2006年11月12日

VBA例外処理

Sub Main()
On Error GoTo Err_Han
Exit Sub(Function)
Err_Han:
例外処理
End Sub(Function)

例外のThrow
Err.Raise Err.Number, , Err.Description
例:Err.Raise 1, , "エラーメッセージ"

Excel VBA Event

Workbookを閉じる前のEvent@ThisWorkbook
Private Sub Workbook_BeforeClose(Cancel As Boolean)
End Sub

Workbookを保存する前にのEvent
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
End Sub

Workbookを開く時のEvent
Private Sub Workbook_Open()
End Sub

Sheetを切り替えるEvent
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
End Sub

WindowをActiveする/切り替えるEvent
Private Sub Workbook_WindowActivate(ByVal Wd As Window)
End Sub

WindowをDeActiveする/切り替えるEvent
Private Sub Workbook_WindowDeactivate(ByVal Wd As Window)
End Sub

配列、列挙型、共同体、構造体

【配列】
C++の配列宣言はJavaと似ています。
データ型 変数名[要素数];になります。
例:int intArray[10]; (要素10個の配列intArray[0] -> intArray[9])
ところで、VBAではDim intArray(9) as Integerとなります。
文字列は
char str[文字数+1];になります。
文字列の最後を示す文字が必要のため、要素数は+1になる。要注意!
ところで、VBAの場合Dim str As Stringとなります。

【列挙型】
enum データ型名 {
変数名1 = 値,
変数名2 = 値,
......
変数名N = 値,
}

【共同体】
union データ型名 {
型 変数名1;
型 変数名2;
......
}

【構造体】
struct データ型名 {
型 変数名1;
型 変数名2;
......
}

2006年11月11日

変数宣言

C++の変数宣言はJavaと似ています。
データ型 変数名;になります。例: int i = 0;
初期値も同時に指定する習慣にしたほうがいいです。
ところで、VBはDim 変数名 as データ型です。
データ型:
整数
short (short int)
long (long int)
int (short/long自動的に判断する)
short/longを明示的に指定したほうがいいでしょう
論理(整数)
bool (false=0, true=0以外)

範囲
signed char (-128 -> 127)
unsigned char (0 -> 255)
signed short int (-32,768 -> 32,767)
unsigned short int (0 -> 65,535)
signed long int (-2,147,483,648 -> 2,147,483,647)
unsigned long int (0 -> 4,294,967,295)
signed int
unsigned int
bool (true/false)

浮動小数
float (3.4X10^-38 -> 3.4X10^38)
double (1.7X10^-308 -> 1.7X10^308)
long double (3.4X10^-4932 -> 1.1X10^4932)