○第6回目 今までの整理など
□if構文
【例1】
If h0 = "0" Then
p1 = ii + 1 'if文が満足するとき
p9 = Worksheets.Count
Else 'if文が満足しないとき
p1 = ii + 1
p9 = ii + h0
End If
【例2】
If h0 = "0" Then p1 = ii + 1 'if文が満足したときいったん横道に行き、下の命令に行く。満足しない場合は、すぐに下の命令にいく。
【例3】
For i = 1 To Len(cll) 'Len()関数は文字列の長さを求めるもの
If Mid(cll, i, 1) = ":" Then
wk1(j) = i: j = j + 1
ElseIf Mid(cll, i, 1) = "," Then '更にif文で場合わけをしている
wk1(j) = i: j = j + 1
End If
Next i
【例4】
For i = 3 To 15
If IsNumeric(Cells(i, 1)) = True Then
Cells(i, 4) = "数字です"
Else
Cells(i, 4) = "数字でないので、計算できません"
End If
Next i
【例5】 ある条件に合致したときFor文を抜けています。
For ii = 0 To cc
If ActiveSheet.Name = WW(ii) Then Exit For 'シート名と同じ番号を取得する
Next ii
○第5回目 シートの選択とシート内でのセル座標の使い方
□シート名の取得 sh_name = ActiveSheet.Name
□シート名を指定し、そのシートに移動 Sheets(sh_name).Select
Sheets("sheet1").Select
□セルの選択 Range("$b$1:$h$5").Select
□セルの選択 Range(Cells(1,2), Cells(5,8)).Select
□セルの行番号を取得 Range("$b$1").Select
r1= ActiveCell.Row
□セルの列番号を取得 Range("$h$1").Select
c1= ActiveCell.Column
□範囲を指定した場合の行番号、列番号の取得
Range("$b$1:$h$5").Select
r1 = Selection.Row
r9 = Selection.Rows.Count + Selection.Row - 1
c1 = Selection.Column
c9 = Selection.Columns.Count + Selection.Column - 1
□セル座標の使い方
for i=1 to 7
for k=1 to 19
cells((6+k),(3+i))=cells((6+k-1),(13+i))/cells((6+k),(13+i))
next k
next i
○第4回目 セルの範囲を取得する
□セルの範囲を入力し、利用可能なように分解します。
hanni = InputBox("列の範囲、よこ見出し行の範囲、データ部の行範囲を入れてください。例えば ", ,"b:h,1:5,6:25")
p1=InStr(hanni,":")
retu1 = Left(hanni,p1-1)
hanni = Mid(hanni,p1+1)
□文字列の左端からnn個の文字を切り取る left(文字列,nn)
□文字列の右端からnn個の文字を切り取る right(文字列,nn)
□文字列のnn個目からmm個の文字を切り取る mid(文字列,nn,mm)
□文字列のnn個目から最後までの文字を切り取る mid(文字列,nn)
□座標の作成、文字列の作成
yoko_midashi = "$" & retu1 & "$" & gyo11 & ":$" & retu9 & "$" & gyo19 '$b$1:$h$5 のようになります。
retu1、gyo11、retu9、gyo19には、それぞれ、b、1、h、5が入っています。
□新しいシートを作りシート名をチェックシートとします。
Dim sh As Worksheet
Set sh = Worksheets.Add
sh.Name = "チェックシート"
□操作マクロの記録
Alt、T、M、Rでマクロの記録を始めます。
『処理』
Alt、T、M、Rでマクロの記録を終わりにします。
□コピペ;すべて。できれば記録マクロで作ってください
Range("C16:F20").Select
Selection.Copy
Range("H16").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
○第3回目 マクロの解説及び補足
□参考にしたいホームページ
http://members.at.infoseek.co.jp/t_shun/My_Page/Excel-VBA/vba_menu.htm
□処理内容を画面に出力します。
MsgBox ("初めてのマクロです。是非マスターしたいです")
《他の例》
YY=2007
MM=6
DD=13
MsgBox ("今日は" & str(YY) & "年" & str(MM)" & "月" _
& str(MM) & "日です" )
□数字を文字に変換する関数 str()
□文字に数字に変換する関数 val()
□キーボードから入力をする
j = InputBox("整数値を入れてください。例えば ", , 10)
□与えられた回数だけ処理を繰り返す。
For i = 1 To j 'j回、forからnextまでを繰り返します。
【処理】
Next i
《他の例》
For i = 1 To j 'j回、forからnextまでを繰り返します。
k = k + i
Next i
MsgBox ("1から" & Str(j) & " までの答えは " & Str(k) & " です")
□配列定義
dim data(10)
○第2回目 始まり及び終了そして簡単な例
□エクセルの世界からマクロの世界へ Alt+F11
□モジュールの追加 マクロの世界で、Alt、i、m
(この記述は、順番に押すことを意味します)
□マクロの世界からエクセルの世界の戻る
Alt+F11 または Alt+F4
第1回目 はじめに及び事例1
□マクロとは
マクロとは、おもに、エクセル上のVBAをもとにして作成したプログラムをいいます。 マクロとは、エクセルでの作業を効率的に行なうための業務専用のプログラムのこと。
□マクロの効用
通常のエクセルでも、さまざまな機能があり、マクロを使わなくても処理が出来ることは事実です。
マクロを使えるようになると、同じ業務を短時間でできます。疲れは少なく、残業時間も少なく、自分の自由時間も多く使えることになります。
□【事例1】 時系列的に色々な数値の推移を表した表を作った。同じ形式の表でさらに条件を変えたパターンのものも作っています。(同一シート上にあるとする)
そこで業務内容。
1.一つの表の中にある列をとったとき、時系列的な増減率、増減はどうなっているのか。
2.別のパターンの表との増減率、増減はどうなっているのか (1、2とも、表の中には、増減率・増減を求めるにはなじまない項目もあると思うが、これまで考慮すると大変なので、表にある全部の項目について増減率・増減を求めてしまうということをします。不要な部分はあとで消せばいい、という気分。)
□【事例1】でのポイント1
1.使用するデータの範囲をどのように与えるか。
たて見出し部分、横見出し部分、データ部分
2.セル間の計算式が必要となるので、使用するセルをどのように記述するのか。
3.増減率、増減の表を別シートにすると、新しいシートの作り方、また、データのあるシートとの間の移動をどうするのか。

0 件のコメント:
コメントを投稿