[三流君] −−> [VBAで楽しく] −−> [バックナンバー一覧]
−−> No.081 セルの右寄せ、中央寄せをHTMLの表にしてみる

セルの右寄せ、中央寄せをHTMLの表にしてみる

メルマガ発行内容

<セルの右寄せ、中央寄せをHTMLの表にしてみる>

どうも、三流プログラマーのKen3です。 今回は、前回の続きで、 Excelの表をHTMLの表にしてみたいと思います。 標準でHTML形式で保存があるけど、練習を兼ねて。 http://www.ken3.org/p/lzh/office-016.lzh に今回のサンプル保存されてます。 あわせてみてください。

/* * 1.追加機能や足りない機能、使っていっての要望をまとめる */

前回、表の基本形を書き込めました。 これを、Excel--HTMLコンバーターと世に出したら、 さぁたいへん(笑) クレームの嵐だった(作り話です) ・セルが全て左によっていて、右寄せ中央寄せができてない ・フォントの色、背景色が変わらない ・セル結合している場所が正しく表にならない   ・   ・ とある中から、 まずは、簡単そうな、 セルの右寄せ中央寄せ、を調べてみたいと思います。

/* * 2.初期捜査、初動捜査 */

セルが右に寄っているか?中央か?どうやって調べましょう。 いつものマクロ記録で、記録してみます。 プロパティ、メソッドの探り方 マクロ記録とF1のHelpを使う http://www.ken3.org/vba/excel-help.html も、ヒマな時、のぞいてください。 話を戻してと、 右、中央を記録しただけなのに、 こんなに長いなんて。。。
Sub Macro1()
    Range("D2").Select
    With Selection
        .HorizontalAlignment = xlRight
        .VerticalAlignment = xlCenter
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
End Sub
さてと、めげないで、探っていくと、 それっぽいのが .HorizontalAlignment = xlRight .HorizontalAlignment = xlCenter これって、見るからに怪しい感じがします。 カーソルを.HorizontalAlignmentに合わせ、F1キーを押します。 使用例 次の使用例は、シート 1 のセル範囲 A1:A5 の内容の横位置を左詰めに設定します。 Worksheets("Sheet1").Range("A1:A5").HorizontalAlignment = xlLeft おっ、使えそうですね。

/* * 3.関数に組み込む */

前回作成したのが、 'ファイル名とセルの範囲RANGEを受け取り、 'ファイルを開きHTMLのテーブルを作成する
Sub MAKE_HTML_TABLE(strFNAME As String, objHANI As Range)

    'ファイルをオープンする
    Dim FNO      As Integer  'ファイル番号
    FNO = FreeFile '空いてるファイル番号を取出す
    Open strFNAME For Output As #FNO  'テキストファイルを新規作成

    'HTMLのヘッダーを書く
    Print #FNO, "<HTML><HEAD><TITLE>"
    Print #FNO, "テーブル作成してみました"
    Print #FNO, "</TITLE></HEAD>"
    Print #FNO, "<BODY>"
    Print #FNO, "<TABLE border=1>"  'テーブルの開始

    '行、列でループを作る
    Dim y As Integer
    Dim x As Integer
    For y = 1 To objHANI.Rows.Count         '行のループ
        Print #FNO, "<TR>";  '行の開始タグ
        For x = 1 To objHANI.Columns.Count  '列のループ
            'セルの値を<TD>で囲って出力
            Print #FNO, "<TD>" & objHANI.Cells(y, x).Value & "</TD>";
        Next x
        Print #FNO, "</TR>"  '行の終了タグ
    Next y

    'HTMLのタグを閉める
    Print #FNO, "</TABLE>"
    Print #FNO, "</BODY></HTML>"

    'ファイルをクローズする
    Close #FNO

End Sub
HTMLファイルを作成しているサブルーチンで、 'セルの値を<TD>で囲って出力 Print #FNO, "<TD>" & objHANI.Cells(y, x).Value & "</TD>"; と、単純に<TD>で囲っている部分を、 <TD ALIGN='RIGHT'><TD ALIGN='LEFT'><TD ALIGN='CENTER'> セルの位置によって変化させます。 'ALIGNを調べて書き込む Select Case objHANI.Cells(y, x).HorizontalAlignment Case xlRight: Print #FNO, "<TD ALIGN='RIGHT'>" Case xlLeft: Print #FNO, "<TD ALIGN='LEFT'>" Case xlCenter: Print #FNO, "<TD ALIGN='CENTER'>" Case Else 'その他設定無しのとき Print #FNO, "<TD>" End Select 力技で書くと、こんな感じです。

/* * 4.終わりの挨拶 */

さて、テストしますか。 まぁ、それなりに動いてます。 が、 まだまだ、ですね。 プロパティの探り方、なんとなくわかったと思います。 次は、セルの背景色、フォントのカラーを探らないと。 http://www.ken3.org/p/lzh/office-016.lzh に今回のサンプル保存されてます。 あわせてみてください。 次回は、もう少しマシなの作りたいですね。 ※できたら、世に出せるくらいのツールになるといいけど、、、 プログラム作りは簡単で面白いなぁと感じるような 解説/メールマガジンを書きたいと思ってますが、 なかなかうまくは行いかないね。。 拾い読みして、 1つでも何かの参考となれば幸いです。


ページフッター

ここまで、読んでいただきどうもです。ここから下は、三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、

種類別のリンク や 広告など

気になったジャンル↓を選択してください。

人気記事(来場者が多いTOP3):
[VBAでIE,WebBrowserを操作]・・・VBAでIE,WebBrowserを操作する サンプルです
[Access から Excel 連携 CreateObject("Excel.Application")]・・・AccessからExcelを操作したりデータの書き出しなどです
[VBAでOutlookの操作 CreateObject("Outlook.Application" )]・・・VBAからOutlookを使い、メール関係を処理するサンプルです
↑上記3つみたいなCreateObjectで他のアプリケーションを操作するサンプルが人気です。

Excel関係:
[Excel UserFormを操作する]・・・エクセルでユーザーフォームを作成して入力などを行ってます
[ExcelからAccessを操作する]・・・ExcelからAccessのマクロを起動してみました、
[Excel関係 関数、その他]・・・その他Excel関係です

Access関係:
[Access UserForm/サブフォーム 操作]・・・アクセスでフォームを使ったサンプルです
[Access レポート操作]・・・レポートを操作してみました
[Access クエリーやその他関数]・・・あまりまとまってませんが、スポット的な単体関数の解説です

その他:VBAの共通関数やテキストファイルの操作など
[VBAでテキストファイル(TextFile)の操作]・・・普通のテキストファイルを使ったサンプルです
[VBA 標準関数関係とその他解説]・・・その他、グダグタ解説してます

開発時の操作: [F1を押してHELPを見る]/ [Debug.Print と イミディエイトウインドウ]/ [実行時エラーでデバッグ]/ [ウォッチ式とSTOP]/ [参照設定を行う]

仕様書(設計書?) XXXX書類: [基本設計書や要求仕様書]/ [テスト仕様書 テストデータ]/ [バグ票]/ [関数仕様書]/ [流れは 入力・処理・出力]

※↑文章の味付けが変わっていて、お口に合うかわかりませんが。。。
※※読んで、気分を悪くされたらスミマセン。

Blogとリンク:[三流君の作業日記]/ [VBAやASPのサンプルコード]/ 広告-[通販人気商品の足跡]



[三流君(TOP ken3.org へ戻る)] / [VBA系TOPへ] / [VBA系バックナンバー目次へ移動]