株式会社ティリオン公式ブログ

ティリオンは、
ITに関する様々なお悩みを解決します、
技術系&日々のできごとをゆるくご紹介。

ExcelでWEBコンテンツの更新(3)

2017-05-24 14:31:36 | IT
Excelシート内に作成したボタンにVBAプログラムを記述します。
 
ボタン1_Click 以下をコピーして、
ボタンに貼り付けて実行してみて下さい。
 
処理の基本的な流れですが、
ボタンを押すと、、
シートを1行ずつ読んで、
HTMLタグを出力していきます。
 
Excelで扱う文字コードは Shift-JISなので、
最終的にUTF-8(BOMなし)形式にして、
c:\temp\table.html という名前でファイルを作成します。
 
なお、Excelファイルは、
マクロ有効ブック *.xlsm 形式で保存します。
 
プログラムさえ組んでしまえば、
面倒なタグを扱うことなしに、
HTMLファイルの更新を行うことができます。
 
===========================
Sub ボタン1_Click()
       
    '   変数定義
    Dim FileName    '   出力ファイル名

    Dim xRow    '   行位置
    
    Dim kdate, kkukan, kunchin  '   ワークエリア
    Dim OutText '   出力バッファ

'   PC版

    xRow = 2
    
    OutText = ""
    
    '   HTML(ヘッダ部)の出力
    OutText = OutText & "<html>" & vbCrLf
    OutText = OutText & "<head>" & vbCrLf
    OutText = OutText & "<meta http-equiv=""Content-Type"" content=""text/html; charset=UTF-8"">" & vbCrLf
    OutText = OutText & "</head>" & vbCrLf
    OutText = OutText & "<body>" & vbCrLf
    
    '   Tableタグ(開始)の出力
    OutText = OutText & "<table border=""1"">" & vbCrLf
    OutText = OutText & "<tbody>" & vbCrLf
    OutText = OutText & "<tr>" & vbCrLf
    OutText = OutText & "<td>日付</td>" & vbCrLf
    OutText = OutText & "<td>区間</td>" & vbCrLf
    OutText = OutText & "<td>運賃</td>" & vbCrLf
    OutText = OutText & "</tr>" & vbCrLf
    
    '   一行ずつ処理をしていく
    Do While Range("A" & xRow).Value <> ""  '   A列に何も入力されていないければ終了とする
                    
        kdate = Range("A" & xRow)       '   日付(A列)保存
        kkukan = Range("B" & xRow)      '   区間(B列)保存
        kunchin = Range("C" & xRow)     '   運賃(C列)保存
        
        '   出力バッファに保存
        OutText = OutText & "<tr>"
        OutText = OutText & "<td>" & kdate & "</td>"
        OutText = OutText & "<td>" & kkukan & "</td>"
        OutText = OutText & "<td>" & kunchin & "</td>"
        OutText = OutText & "</tr>" & vbCrLf
                
        xRow = xRow + 1
    Loop
    
    '   Tableタグ(終了)の出力
    OutText = OutText & "</tbody>" & vbCrLf
    OutText = OutText & "</table>" & vbCrLf

    '   HTML(降った部)の出力
    OutText = OutText & "</body>" & vbCrLf
    OutText = OutText & "</html>" & vbCrLf

    '   ファイルの出力先
    FileName = "c:\temp\table.html"

    'ADODBの設定
    '   参照設定 [ツール]→[参照設定]で
    '   Microsoft ActiveX Data Objects x.x Library にチェックを入れる
    Dim ado1 As New ADODB.Stream
    
    '   UTF-8形式のファイルで保存する
    ado1.Type = adTypeText
    ado1.Charset = "UTF-8"
    ado1.LineSeparator = adCRLF
    ado1.Open

    ado1.WriteText OutText, adWriteLine
    ado1.SaveToFile FileName, adSaveCreateOverWrite

    ado1.Close

    Dim Src, BOM, Buf

    '   UTF8 BOMの削除
    Set Src = CreateObject("ADODB.Stream")
    Src.Open
    Src.Type = adTypeText
    Src.Charset = "utf-8"
    Src.WriteText ""
    Src.Position = 0
    Src.Type = adTypeBinary
    BOM = CStr(Src.Read(3))

    Src.LoadFromFile FileName
    Buf = CStr(Src.Read(3))
    If Buf = BOM Then
        Buf = Src.Read(-1)
        Src.Position = 0
        Src.Write Buf
        Src.SetEOS
        Src.SaveToFile FileName, adSaveCreateOverWrite
    End If
    
    Src.Close
    Set Src = Nothing

    MsgBox "終了しました"


===========================


 

。:+* ゚ ゜゚ *+:。:+* ゚ ゜゚ *+:。:+* ゚ ゜゚ *+:。:+* ゚ ゜゚ *+:。:+* ゚ ゜゚ *+:。
株式会社ティリオンは、
システムに強いWEB制作会社、
魅せるホームページ+高度なシステムで、
ビジネスの成功をお手伝いします。
 
こんなことできないか、と、思ったら、
まずは、お気軽にお問合せを、

miura@tirion.co.jp 担当:三浦
 
弊社では、お酒の情報ポータルサイト、
銘酒ネット(http://meisyu.net/)を運営しています。
。:+* ゚ ゜゚ *+:。:+* ゚ ゜゚ *+:。:+* ゚ ゜゚ *+:。:+* ゚ ゜゚ *+:。:+* ゚ ゜゚ *+:。

ExcelでWEBコンテンツの更新(2)

2017-05-22 10:47:20 | IT
ExcelシートをそのままHTMLファイルにしたり、
ExcelシートをHTMLに変換してくれるサイトもあるのですが、
どちらもデザイン的に「アレ」な感じになってしまうので、
VBAを使って、
HTML変換していきます。
 
VBA…
Excelを使っていてVBAを使いこなしている人はそれほど多くないような…、
でも、覚えればいろいろ便利だと思います。
 
ExcelでVBAを使うには、
 
Excelのオプション(ファイルメニュー→オプション)
 ↓
リボンのユーザ設定
 ↓
開発にチェックを入れて下さい
 
メニューバーに「開発」が表示されます。
 
 
フォームコントロール、
一番上の □ をクリック、
 シートの上で四角を描くようにクリック、ドラッグ&ドロップすると、
マクロメニューが表示されます、
 
 
新規作成をクリックするとVBAのコード画面が表示されます、
ここにシートの内容をHTMLに変換するためのプログラムを書いていきます。
 
 
試しに MsgBox "テスト" と入力してみます。
 
シート上のボタンをクリックすると、
ダイアログボックが出てきて テスト と表示されます。
 
セキュリティ関係のエラーが表示された場合には、
設定を確認するか、
もう一度最初からやり直してみて下さい。
 
次回は実際にプログラムを組んでみます。
 
。:+* ゚ ゜゚ *+:。:+* ゚ ゜゚ *+:。:+* ゚ ゜゚ *+:。:+* ゚ ゜゚ *+:。:+* ゚ ゜゚ *+:。
株式会社ティリオンは、
システムに強いWEB制作会社、
魅せるホームページ+高度なシステムで、
ビジネスの成功をお手伝いします。
 
こんなことできないか、と、思ったら、
まずは、お気軽にお問合せを、

miura@tirion.co.jp 担当:三浦
 
弊社では、お酒の情報ポータルサイト、
銘酒ネット(http://meisyu.net/)を運営しています。
。:+* ゚ ゜゚ *+:。:+* ゚ ゜゚ *+:。:+* ゚ ゜゚ *+:。:+* ゚ ゜゚ *+:。:+* ゚ ゜゚ *+:。

ExcelでWEBコンテンツの更新(1)

2017-05-21 11:05:26 | IT

WEBコンテンツを更新する方法はいくつかありますが、

一般的には、
HTMLファイルを修正し、
FTPソフトを使ってサーバに転送、
して動作確認だったり、

WordPress等のCMSを使って修正、

という方法だと思います。

WordPressなら比較的簡単にできますが、
HTMLファイルを修正してFTP、
という流れだと、
HTMLタグについての教育したり、
FTPソフトの操作法を教えたり、
と、なにかと面倒な上、
修正自体に手間がかかり、
入力ミスでページが崩れたりと、
なにかと問題が多いのも確か。

弊社では、 Excelを使ってコンテンツを更新するシステムを提供しています。
例えば、

日付 区間 運賃
5/1 千葉-東京 637円
5/2 千葉-稲毛 154円

こんな表組みを作る場合、
HTMLなら、

<table border="1">
<tbody>
<tr><td>日付</td><td>区間</td><td>運賃</td></tr>
<tr><td>5/1</td><td>千葉-東京</td><td>637円</td></tr>
<tr><td>5/2</td><td>千葉-稲毛</td><td>154円</td></tr>
</tbody>
</table>

こんな感じでコーディングしていきます。

HTMLの知識がない人に、
毎日1行追加して情報を更新して下さい、
ということをお願いするのも結構大変だし、
やる人の負担にもなってきます。

Excelならこの程度の修正なら誰でも簡単に行うことができますね、

こんな感じでExcelで表を作成。

このデータをどうやってHTML化するのか、
方法はいくつかあります。

①ExcelのVBAを使ってHTMLを作成する
②Excelファイルをサーバに送信し、
 サーバ側でHTMLに変換する
   :

まずは、①のVBAについて説明します、
以下、次回に続きます。

。:+* ゚ ゜゚ *+:。:+* ゚ ゜゚ *+:。:+* ゚ ゜゚ *+:。:+* ゚ ゜゚ *+:。:+* ゚ ゜゚ *+:。
株式会社ティリオンは、
システムに強いWEB制作会社、
魅せるホームページ+高度なシステムで、
ビジネスの成功をお手伝いします。
 
お問合せはお気軽に、
miura@tirion.co.jp 担当:三浦
 
弊社では、お酒の情報ポータルサイト、
銘酒ネット(http://meisyu.net/)を運営しています。
。:+* ゚ ゜゚ *+:。:+* ゚ ゜゚ *+:。:+* ゚ ゜゚ *+:。:+* ゚ ゜゚ *+:。:+* ゚ ゜゚ *+:。




ブログ開設

2017-05-20 11:01:03 | 日記
株式会社ティリオン…、
このブログにアクセスしてきた大多数の人は知らないと思いますが、
東京や千葉で、
WEBデザインやIT関係の案件を主にやっております。

もともと、情報誌系の出版社でIT担当や、
WEBマスター等をやってきましたので、
情報を見せるタイプのサイト構築を得意としています。

その一環といいますか趣味と実益を兼ね、
お酒のポータルサイト、
銘酒ネット(http://meisyu.net/)を立ち上げ、
サイトの運用ノウハウなんかも日々蓄積しております。

特にとんがった技術ではなく、
コストをかけずに、
使いやすいシステムの提供を心がけております。

他の会社さんにもいろいろ参考になるようなことを、
ひょっとしてやっているかもしれませんので、
今後、その辺りをブログで書いていきたいと思っています、
よろしくお願いします。