A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | |
1 | 角 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | − | ^ | ¥ | BS |
2 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 |
3 | 1 | 1 | 1 | 2 | 3 | 4 | 4 | 5 | 5 | 6 | 7 | 8 | 8 | 8 | 8 |
4 | Tab | Q | W | E | R | T | Y | U | I | O | P | @ | [ | Enter | |
5 | 60 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 60 | |
6 | 1 | 1 | 2 | 3 | 4 | 4 | 5 | 5 | 6 | 7 | 8 | 8 | 8 | 8 | |
7 | Caps | A | S | D | F | G | H | J | K | L | ; | : | ] | ← | |
8 | 70 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 50 | |
9 | 1 | 1 | 2 | 3 | 4 | 4 | 5 | 5 | 6 | 7 | 8 | 8 | 8 | 8 | |
10 | Shift | Z | X | C | V | B | N | M | , | . | / | ─ | Shift | ||
11 | 90 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 70 | ||
12 | 1 | 2 | 3 | 4 | 4 | 5 | 5 | 6 | 7 | 8 | 8 | 8 | 8 |
Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2002/3/23 ユーザー名 : (=^^=)
'
Dim x$(8), y$(8)
x$(1) = "white"
y$(1) = "black"
x$(2) = "black"
y$(2) = "white"
x$(3) = "red"
y$(3) = "white"
x$(4) = "blue"
y$(4) = "white"
x$(5) = "yellow"
y$(5) = "black"
x$(6) = "green"
y$(6) = "white"
x$(7) = "#00ffff"
y$(7) = "black"
x$(8) = "#ff00ff"
y$(8) = "black"
Open "type.txt" For Output As #1
For i = 1 To 4
Print #1, "<table border=1><tr>"
For j = 1 To Int(15.8 - i / 2)
a$ = Cells(i * 3 - 2, j)
b$ = Cells(i * 3 - 1, j)
c$ = Cells(i * 3, j)
Print #1, "<td ";
If j = 1 Then Print #1, "height=40 ";
Print #1, "width="; b$; " bgcolor="; x$(Val(c$));">";
Print #1, "<font color="; y$(Val(c$)); "><center>"; a$; "</center></font></td>";
Next j
Print #1, "</tr></table>"
Next i
Close
'
End Sub
これでキーボードの絵のソースが出来上がるので,HTMLファイルにコピペするだけである。私はエクセルのマクロを習ったことが一度もない。適当にいじっているうちに,エクセル上でBASICを実行する方法を知って,cellsという関数を教えてもらっただけなのである。今時,エクセル上でopenなんて使う人がいるのかどうか知らないが,実に便利な機能である。また,BASICを使っていた人にとっては,行番号がない(付けたいときだけ付ける)ことには違和感を感じるかもしれないが,FORTRANを使ったことがある人にはお馴染みの仕組である。
ちなみに,このページのエクセルの表もマクロで作ってある。
Sub Macro2()
'
' Macro2 Macro
' マクロ記録日 : 2002/3/24 ユーザー名 : (=^^=)
'
Open "vba.txt" For Output As #1
Print #1, "<table border=1>"
Print #1, "<tr><td bgcolor="#7f7f7f"> </td>";
For i = 1 To 15
Print #1, "<td bgcolor="#7f7f7f">"; Chr$(&H40 + i); "</td>";
Next
Print #1, "</tr>"
For i = 0 To 3
For j = 1 To 3
Print #1, "<tr><td width="60" bgcolor="#7f7f7f">"; Str$(i * 3 + j); "</td>";
For k = 1 To 15
a$ = Cells(i * 3 + j, k)
If a$ = "" Then a$ = " "
Print #1, "<td>"; a$; "</td>";
Next k
Print #1, "</tr>"
Next j, i
Print #1, "</table>"
Close
'
End Sub
str$,chr$など,BASICでお馴染みの関数がそのまま使えるのが嬉しい限りである。ところで,どうしてExcelの関数や文法がVBAと微妙に違うの? Excelで=if(a1=a2 and a2<>3,a1,"")と書いたらエラーになって,=if(and(a1=a2,a2<>3),a1,"")と書かなければならないことを知ったのは,実はつい最近のことであった。(=^^=;;
ITバブルを茶化すコーナー 化け猫屋敷に戻る 化け猫屋敷掲示板(=^^=)m 上級シスアド連盟