三流君 ken3のmemo置き場

メモ置き場、保管庫として利用。まとまっていませんがヨロシク

挨拶・自己紹介:
失敗続きのAB型の変わり者 :三流プログラマー Ken3です
フリーのエンジニア・個人事業主です・・と書くと聞こえはイイが(それとなくカッコよく聞こえるが)、 現在は小さな案件の受注請負 と 短期派遣 で 日々つつましく?ほそぼそと暮らしてます。
(※詳細は[三流君 三流プログラマーとは?]を見てください)


広告:


[記事一覧、バックナンバーを見る]

テキストファイル処理、Print #でダラダラと書き出してみた

Excel シート上のデータをテキストファイル(HTMLファイル)に書き出してみた。

入力

B1 に タイトル
A列 に 役名
B列 に 台詞


処理

Option Explicit

'シートからテーブルを作る
'単純にテキストファイルに書き出してみた
'1.A列のみにデータが存在する場合、見出しのH4タグにする
' 1.1 B1を見出しのH4タグに入れる
'2.B列の強調文字 .Font.Bold = True なら Bタグで囲う
'3.A列、B列何もなければ、処理しない
'4.1000行目までデータをチェックする(今回は固定)

Sub TABLE作成()

    Dim y As Integer  '行カウンター
   
    Dim strWORK As String  'HTML文をため込む 文字変数
    
    Dim strA As String 'A列のデータ
    Dim strB As String 'B列のデータ
    
    Dim n As Integer   'H3 見出しの数
    
    Open ActiveWorkbook.Path & "\テーブル.txt" For Output As #1
    
    n = 0
    For y = 3 To 999 '三行目から999行目までループする
        'AとB列の文字を取り出す、Trimで整形
        strA = Trim("" & Cells(y, "A"))
        strB = Trim("" & Cells(y, "B"))
        'どちらか に データが入っていたら処理を行う
        If strA <> "" Or strB <> "" Then
            If strB = "" Then  'B列にデータ無し(見出しか?チェック)
                'A列のみデータアリの時、シーンを区切る
                Print #1, strWORK   'データをファイルへ書き出す
                strWORK = "" 'ワークをクリア
                
                Print #1, "</table><br><br>"
                Print #1, ""
                Print #1, ""
                '見出しを書き込む
                n = n + 1
                Print #1, "<h4>" & Trim(Range("B1")) & " " & Format(n, "00") & " " & strA & "</h4>"
                Print #1, ""
                Print #1, "<table border=0 cellpadding=4>"  '会話のテーブルを開始する
                
            Else  'B列にデータアリ 会話、その他 の時、1行メモリに保存
                If Cells(y, "B").Font.Bold = True Then '強調文字のチェック
                    strWORK = strWORK & "<tr><td>" & strA & "</td><td><b>" & strB & "</b></td></tr>" & vbCrLf
                Else
                    strWORK = strWORK & "<tr><td>" & strA & "</td><td>" & strB & "</td></tr>" & vbCrLf
                End If
            End If
        Else
            '空白を開ける
            strWORK = strWORK & "<tr><td>_</td><td></td></tr>" & vbCrLf
        End If
        
    Next y
    
    '終了処理
    Print #1, strWORK   '最後のデータを書き出す。
    Print #1, "</table><hr><br><br>"
    Print #1, ""

    Close #1  'ファイルを忘れずに閉じる

    MsgBox "終了しました、テキストファイルを確認してください"

End Sub

出力結果

終わりのあいさつ

強引に
Open ActiveWorkbook.Path & "\テーブル.txt" For Output As #1
と、ファイル番号1で出力モードでファイルを開けたら

For y = 3 To 999 '三行目から999行目までループする
でループを作り、

あとは、単純に
Print #1, "文字列"
で書き出しただけでした。

う〜ん、力技のプログラムですね。
※まぁ、再利用しないからいいのかなぁ(ぉぃぉぃ)




三流君へ メッセージを送る

全ての質問に答えることはできませんが、
ダメもとで、気軽に質問、感想、メッセージを送ってくださいね・・・

感想や質問・要望・苦情など 三流君へメッセージを送る。
下記のフォームからメッセージを送ることができます。


あなたのお名前(ニックネーム):さん
返信は?:

アドレス:に返事をもらいたい
感想や質問↓:


(感想や質問・要望・苦情はHPで記事に載せることがあります。)
例:[XXXXさんへ回答例]←みたいに回答していたり...


Ken3 ホームページ 目次

分類:HPを大きく分けると4つの柱(分類)です。
・[Excel/Access VBA]の解説
・[ASP(Active Server Pages)]の解説。
・[元コンビニ店長時代の話]が弟に巻き込まれ、失敗した脱サラ、畑違い?の仕事で失敗。
・[プログラマーの愚痴]では、あまり見せたくない三流プログラマーの内面かな。
三流君を踏み台にする
主に上記4つの分類でHP作成やメルマガの発行を行ってます。
※更新頻度が落ちていて情報の鮮度が悪いです。

三流解説動画の再生リスト
https://www.youtube.com/user/ken3video/playlists

本当に三流なんです(笑):たまにスゴイですねなんて言われることもありますが、
真実は→ [三流君の真実は...] ←を初めに見てくださるとわかると思います。
(からくりは、成功例↑しか載せてなくて ヒドイ失敗例はお蔵入り迷宮入りが多かったりします)