|           
          
         
    
        
        
 [  3 HTML 自動生成法        
続き ]      
      
 3.3 Excel で HTML 文 を 合成       
       
 ひな形から作成した hinagata.txt ファイルの HTML文       
の内容は 以下のようになっています。       
この内 下記の         
赤文字 部分を         
画像毎に入れ替える必要があります。       
ここを Excel を使って、画像一覧の データリストの情報を       
組み込みます。       
 画像No はひながた画面で指定してある 5 として       
説明します。       
       
 文章で細かくすると、ものすごく複雑になってしまいました。       
勘所をつかめば比較的簡単ですのでチャレンジしてみて下さい。       
 Excel ワンポイント       
で ポイントを覚えていただければ早いと思います。       
複雑な行は、複数行に分け、簡単にする方法も合わせて書いてあります。       
       
 ☆ ひな形 画面の HTML 文        
          
         
      
        
    |       
       行          
      1       
      2       
      3       
      4       
      5       
      6       
      7       
      8       
      }9       
      10       
      11       
      12       
      13       
      14       
      15       
      16       
      17       
      18       
      19       
      20       
      21       
      22       
      23       
      24       
      25       
      26       
      27       
      28       
      29       
      30       
      31       
      32       
        |       
           
      <html>       
             
      <head>       
      <meta http-equiv="Content-Language" content="ja">       
      <meta http-equiv="Content-Type" content="text/html; charset=shift_jis">       
      <meta name="GENERATOR" content="Microsoft FrontPage 4.0">        
      <meta name="ProgId" content="FrontPage.Editor.Document">       
      <title>ページタイトル01</title>      
      </head>      
            
      <body background="flowers2.jpg">       
             
      <table border="0" width="71%">        
  <tr>       
    <td width="59%"><b>タイトル</b></td>        
    <td width="15%"><a href="index.htm">Homeへ</a></td>      
    <td width="13%"><a href="gazou000.htm">←前へ</a></td>      
    <td width="17%"><a href="gazou002.htm">次へ→</a></td>      
  </tr>      
      </table>      
      <table border="5" width="33%" bordercolor="#008080">       
  <tr>       
    <td width="100%"><img border="0" src="gazou001.jpg"       
      width="441" height="109"       
      alt="gazou001"></td>       
  </tr>      
      </table>      
      <p>No 001  <b>画像タイトル</b><br>   
      <br>   
      説明文 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ</p>   
         
      </body>   
         
      </html>   
       |   
     
   
☆ 手順    
    
 @ 3.2 画像データの作成で作成したExcel       
のブック Auto_HTML.xls に 新しいシートを作り ( または       
既にある未使用のシート sheet 2 等 )       
、これに HTML生成 という名前を付けます。   
   
 A A1セルに ひな形のテキストファイル hinagata.txt       
をインポートします。       
   方法は、A1セルをクリックし、メニューバーの [       
データ ][ 外部データの取り込み ][       
テキストファイルのインポート ]を選択し ファイル       
hinagata.txt を指定します。       
       
 B すると 上記の HTML文が A1       
セルから下に格納されます。       
       
 C 1〜7行は、ページ作成ソフト 等で       
一部異なる場合がありますが、手を加える必要はありません。       
       
 D 8行目 : タイトル <title>ページタイトル01</title> の   
赤字部分を 画像一覧リストから   
参照するよう以下のように書き換えます。 漢字以外は全て   
半角で入力します。   
   
  ="<title>"&LOOKUP(画像一覧!C3,画像一覧!A7:A16,画像一覧!B7:B16)&"</title>"   
 @ A           
BC      D               
E            F                  
GH ・・・・・・ 次の説明項目番号   
   
 @ 文字列の式である定義のため、先頭に       
= を入れます。       
 A <title> はそのまま使うので       
文字の両側に "       
(アポストロフィー)を入れます。 "<title>"        
 B 次の文字との結合を表す &   
を 入力します。       
 C 画像一覧リストから       
該当データを抽出する Excel の関数 Lookup を 作ります。  LOOKUP(       
 D 検査値 ; データを探すための       
指定値、すなわち 画像No のセル 画像一覧!C3       
を記入し、次の項目の区切り , (       
コンマ )を入力します。       
 E 次の項は       
検査範囲で 画像No の入っている セル範囲 画像一覧!A7:A16   
と 区切りの , を       
入力します。       
 F 対応範囲で       
抽出されるデータのセル範囲 画像一覧!B7:B16 と関数終了の ) を入力します。   
 G 次の文字との結合を表す &   
を 入力します。       
 H </title> はそのまま使うので       
文字の両側に "       
(アポストロフィー)を入れます。 "</title>"         
          
         
      
        
    Excel       
      ワンポイント :    
       ・ 式であることを表現するのに・・・ 先頭に =      
      を付けます。      
       ・ 式の中で、文字列の両側に ” を付けます。   
       ・ 文字列の結合には & を記入します。      
       ・ データリストから指定したデータを抽出する関数       
      Lookup は       
          LOOKUP(検査値, 検査範囲,       
      対応範囲) の書式   
       ・ セルの位置は 下記のように表現します。      
         ( 単独のセル )   
          シート内   ; 行・列の記号   ex) A1        
          他のシート ; シート名 !       
      セル番地  ex) 画像一覧!C3   
         ( セル範囲 )   
          (開始)セル番地       
      : (終了)セル番地 ex) A7:A16 ( シート内 )、画像一覧!B7:B16 (       
      他のシート )       
       |       
         
       
 E 11行目 : 背景の指定、 画像一覧でファイル名を入力することとしたので、これを参照します。   
   
   
  ="<body background="&CHAR(34)&画像一覧!C4&CHAR(34)&">"  ・・・ 合成結果の       
HTML文       
       
   これは D と同じ要領で、式の =       
文字列 <body background= の両側の "、結合の & セル指定 画像一覧!C4 結合の & 文字 > の両側の " を入力します。    
    
 F  17行目 : 前画像へのリンク指定    
    
   <td width="13%"><a href="gazou000.htm">←前へ</a></td>   ・・・ ひな形の       
HTML文       
    の 赤文字部分をリストから抽出するため       
一行は以下のように記述します。       
       
   ="    <td width="&CHAR(34)&"13%"&CHAR(34)&"><a  
href="&CHAR(34)&"gazou"&RIGHT("00"&画像一覧!C3-1,3)&".htm"&CHAR(34)&">←前へ</a></td>"  ・・・ 合成結果の       
HTML文       
       
    この部分には       
Eまでと、新しい 2つの Excel の約束事が含まれています。       
       
   (1) ひな形の HTML文 <td       
width= の後に " が付いていて、       
文字の両側を囲む "       
と混同されてしまうのを防ぐため、最終的に "       
を表示するために、       
" の替わりに CHAR(34) と記入します。    
    
   (2) 前画像のページにリンクを貼るためのファイル名 gazou001.htm       
の文字を作るために "gazou"&RIGHT("00"&画像一覧!C3-1,3)&".htm" と表します。    
  ・ 関数 RIGHT の 中身は先ず 作成する 画像No       
の値は 画像一覧!C3 に記入されており(       
例では 5 )、前の画像はこのNoのマイナス       
1 した値なので 画像一覧!C3-1 (       
例では 4 ) としています。       
  ・ gazou の 後の数字は 常に 3桁 とするため       
"00" と 画像一覧!C3-1 (       
例では 4 ) を結合し 例では 004 とし、そのうちの RIGHT       
関数で 右から 3文字を 取り出しています。       
    例えば 2桁 36 の場合 0036 の右から       
3桁で 036 という値となり、常に3桁となります。       
       
  ・ あとは、既に出た文字列の結合ルールに従って       
記入します。 " と char(34)       
の関係が少しややこしいですが整理して入力してみてください。        
  ・ どうしても       
ややこしすぎる場合は文字と関数で表示する部分を HTMLの       
<行を変えても連続と同等>の性質を利用し、以下のように複数行にすると簡単になります。       
       
    <td width="13%"><a  
href="      
=RIGHT("00"&画像一覧!C3-1,3)     
">←前へ</a></td>    
     
     
 こうすれば この項で出た、 " を表示するための       
chara(34) と 文字を囲む "  "       
がごちゃごちゃにならずに済みます。       
        
          
         
      
        
    Excel       
      ワンポイント :     
      ・ 文字列の式中で " を記述するには・・・        
      " の替わりに CHAR(34) と記述します。 CHAR() は       
      文字コードを文字に変換する関数で、 "の文字コードが       
      34 のため CHAR(34) は  "      
      を1文字書いたことと同じ意味になります。      
            
      ・ セルに文字だけを記入する時は、=      
      等 何も付けずに記入すると、文字列として扱われるので。 <td width="13%"><a  
      href="      
      
は文字として そのまま記入します。 最後の " も      
      式の中でないので文字として扱われます。     
 |      
        
      
      
 G  18行目 : 次画像へのリンク指定    
    
   ="    <td width="&CHAR(34)&"13%"&CHAR(34)&"><a  
href="&CHAR(34)&"gazou"&RIGHT("00"&画像一覧!C3+1,3)&".htm"&CHAR(34)&">←前へ</a></td>"  ・・・ 合成結果の       
HTML文       
       
 これはFと基本的に同じですが、次画像は       
現在のNo に +1 したものですから 画像一覧!C3+1 の所を       
+とします。       
       
 H  23行目 : 表示画像ファイル、サイズのデータ組込    
    
    
    <td width="100%"><img border="0"  
src="gazou001.jpg"      
width="441"      
height="109"      
alt="gazou001"></td>   ・・・ ひな形の       
HTML文       
       
今までの繰り返しで       
下のように入力します。       
       
="    <td width="&CHAR(34)&"100%"&CHAR(34)&"><img border="&CHAR(34)&"0"&CHAR(34)&"  
src="&CHAR(34)&"gazou"&RIGHT("00"&画像一覧!C3,3)&".jpg"&CHAR(34)&" width="&LOOKUP(画像一覧!C3,画像一覧!A7:A16,画像一覧!E7:E16)&CHAR(34)&" height="&LOOKUP(画像一覧!C3,画像一覧!A7:A16,画像一覧!F7:F16)&CHAR(34)&" alt="&CHAR(34)&"gazou"&RIGHT("00"&画像一覧!C3,3)&CHAR(34)&"></td>"  ・・・ 合成結果の       
HTML文       
す。       
 行が長いのと、" を表示すべき数が多いため       
長く複雑になっていますが、頑張って下さい。       
 勘所は、左から変換を進めますが、どこまでが文字で       
"  " でくくり、結合の &       
と表示すべき " を char(34) に変換する       
ということを意識しながら行います。       
 大変そうですが 慣れると 1個所の間違いくらいで       
一度に変換できるようになります。       
 どうしてもの時は 下のように、行を変えながら分割すると簡単になります。      
      
    <td width="100%"><img border="0"  
src="      
="gazou"&RIGHT("00"&画像一覧!C3,3)&".jpg"     
 width="     
=LOOKUP(画像一覧!C3,画像一覧!A7:A16,画像一覧!E7:E16)     
" height="       
=LOOKUP(画像一覧!C3,画像一覧!A7:A16,画像一覧!F7:F16)      
" alt="       
="gazou"&RIGHT("00"&画像一覧!C3,3)&CHAR(34)      
"></td>      
      
 I  26行目 : 画像番号、タイトルの表示    
    
 今までの応用ですので説明は省略します。    
    
<p>No 001  <b>画像タイトル</b><br>   ・・・ ひな形の      
HTML文      
      
="<p>No "&RIGHT("00"&画像一覧!C3,3)&"  <b>"&LOOKUP(画像一覧!C3,画像一覧!A7:A16,画像一覧!C7:C16)&"</b><br>"  ・・・ 合成結果の      
HTML文      
      
      
 J  28行目 : 画像説明文の表示    
    
説明文 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ</p>   ・・・ ひな形の      
HTML文      
      
=LOOKUP(画像一覧!C3,画像一覧!A7:A16,画像一覧!D7:D16)&"</p>"  ・・・ 合成結果の      
HTML文      
      
      
      
 K  大変お疲れさまでした。 これで      
ひな形画像で 画像一覧シートの 指定したNo      
のデータを自動的にHTML文に組み込む仕組みが完成です。      
        
         
        
     
      
     |