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からの検索スクリプトサンプル

検索文字入力:


みか と入力して、検索ボタンをクリックした結果

みかん 40

 

解説

VBAからJavascriptファイルを出力しています。前回よりはわかりやすいと思います。


 

講座メインページに戻る