VisualBasic for Applications (Microsofot Excel編)
第5回
はじめに
前回と同様、JavaScriptを使用して検索 スクリプトを作ってみます。但しデータファイルとHTMLファイルを分離して作ります。データはマイクロソフトExcel(以下Excel)を使用してつくります。 データ管理はExcelやマイクロソフトAccessを使用した方が管理しやすいからです。 データが変更された場合にはExcelで変更したデータからVBAを使ってJavascriptデータ ファイル(.js)を出力し、Webサーバー等にアップロードすれば良いわけです。
以下のようなサンプルを使います。
以下のようなExcelの表があるとします。A列が用語でB列が金額とします。 HTML内でA列内のキーワードを検索して該当するA、B列の表を表示するとします。
| A | B | |
| 1 | りんご | 100 |
| 2 | みかん | 40 |
| 3 | ばなな | 50 |
| 4 | もも | 150 |
VBAでは以下のようなプログラムを行います。
Sub htm_sam()
Dim i , j As Integer
Dim html As String
Dim file_name As String
Dim file_num As Integer
Dim cr As String
Dim Col As Integer
Dim Row As Integer
Rem ********初期設定を行います********
cr = Chr(13) & Chr(10)
Row = 4 '行数
Col = 2 '列数
file_name = "c:\sample.js" 'htmlファイルの保存先
Rem ********HTMLファイル用のハイパーテキスト作成********
html = "<html><head><title>検索スクリプトサンプル</title>"
& cr
html=html & "<script language=JavaScript>"
& cr
html=html & "<!--" & cr
html=html & "var Row=" & Str(Row-1) &
";" & cr
html=html & "var Col=" & Str(Col-1) &
";" & cr
html=html & "db = new Array();" & cr
html=html & "for(i=0;i<=" & str(Row) &
";i++)" & "{db[i] = new Array();}" &
cr
for i = 1 to Row
for j=1 to Col
html=html & "db[" & str(i-1) &
"]["& str(j-1) & "]=" &
"'" & Cells( i , j ) & "';" & cr
Next j
Next i
Rem ********HTMLファイル出力を行います********
file_num = FreeFile()
Open file_name For Output As #file_num
Print #file_num , html
Close #file_num
Rem ********プログラム終了********
End Sub
Javascript付きのHTMLファイルは以下のようなファイルにします。(sample.htmlとします。)
<html><head><title>検索スクリプトサンプル</title>
<script src='sample.js'></script>
<script language=JavaScript>
<!--
function ser(ken){
var ht='<table border=1>';
for(i=0;i<=Row;i++){
if (db[i][0].indexOf(ken)!=-1){
ht += '<tr><td>' + db[i][0] + '</td><td>'
+ db[i][1] + '</td></tr>';
}
}
ht += '</table>';
document.open();
document.write(ht);
document.close();
}
//-->
</script>
</head>
<body>
<p>Excelからの検索スクリプトサンプル</p>
<form name='myform'>
検索文字入力:<input type=text name='tx'>
<input type=button value='検索'
onClick='ser(document.myform.tx.value)'>
</form>
</body>
</html>
出力されたsample.jsファイルとsample.htmlファイルを同じフォルダにおいて、sample.htmlを実行します。以下は実際のHTML表示結果(テキストに みか と入力してください。そのご、検索ボタンをクリックする)
Excelからの検索スクリプトサンプル
|
みか と入力して、検索ボタンをクリックした結果
|
解説
VBAからJavascriptファイルを出力しています。前回よりはわかりやすいと思います。