|
今度は Excel のセル内で改行をした場合に、 Wiki の表でも改行ができるように工夫をします。 以下の例を見てください。 ||<#FFFFFF' ``|| ||||<#CCFFFF' style=line-height:5pt; '``改行しない例 ||||<#CCFFFF' style=line-height:5pt; '``改行する例 ||<#FFFFFF' ``|| ||||<#CCFFFF' ``ABC DEF ||||<#CCFFFF' width=80 style=word-spacing:560; '``GHI JKL 上の例では、 width (セルの幅)を指定した上で word-spacing:560 (スペースの部分で改行する) を宣言しています。そしてセルの改行する部分で、半角スペースを使います。 すると以下のように表示されます
これでセル内の改行はできました。 以上は以下のブログを参考にしました。 これをマクロにしてみました。マクロのコードは以下の通りです。 Sub CreateSimpleWikiTable4() ' マクロ作成日 : 2007/1/31 ユーザー名 : 玄 ' 選択した Excel の表を Wiki 文法の形に書き換える。 ' セルの改行処理も行う。 Dim c As Long Dim r As Long Dim sc As Long Dim sr As Long Dim st As String Dim ws As Worksheet ' セルの文字列を一時的に格納する変数 Dim buf As String sc = Selection.Columns.Count sr = Selection.Rows.Count ' Wiki 文法への書き換えのコード For r = 1 To sr
st = st & "||<#FFFFFF' ``||" & vbCrLf
Next rFor c = 1 To sc
' 普通のセルは中央寄せ
Next cst = st & "||||<#CCFFFF' " buf = Selection.Cells(r, c).Text ' セルのデータが数値のときは右寄せ If IsNumeric(Selection.Cells(r, c)) Then
st = st & "align=right "
End Ifbuf = Selection.Cells(r, c).Text ' セル内で「Alt + Enter」で改行したかどうかをチェックし、 ' 改行文字があれば半角スペースに変換して、 ' "width" と "word-spacing" を設定する。 If InStr(1, buf, vbLf) > 0 Then
buf = Replace(buf, vbLf, " " )
Elsest = st & "width=80 style=word-spacing:560;"
st = st & "style=line-height:5pt;"
End Ifst = st & " '``" st = st & buf st = st & vbCrLf ' 新しいワークシートを作成し、 ' その中に Wiki 文法に書き換えた表を出力する Set ws = ThisWorkbook.Worksheets.Add() ws.Cells(1, 1) = st Set ws = Nothing End Sub Excel の表をマウスで選択して、マクロを実行すると、以下のようになります。
これで改行も処理ができました。
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

- >
- コンピュータとインターネット
- >
- コンピュータ
- >
- ソフトウェア




