川柳などの短詩を作り、交流しませんか!!

自然も人事も変転絶え間ないかたちを一句に!

過去の投稿日別表示

[ リスト | 詳細 ]

全1ページ

[1]

今度は 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 (スペースの部分で改行する)
を宣言しています。そしてセルの改行する部分で、半角スペースを使います。
すると以下のように表示されます


改行しない例 改行する例
ABC DEF GHI JKL

これでセル内の改行はできました。
以上は以下のブログを参考にしました。

京都写真日記:Wiki文法を使いこなそう - テーブルセル内で改行&センタリングしたい
http://blogs.yahoo.co.jp/suzutakaho/4186722.html


これをマクロにしてみました。マクロのコードは以下の通りです。

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

For c = 1 To sc

' 普通のセルは中央寄せ
st = st & "||||<#CCFFFF' "
buf = Selection.Cells(r, c).Text

' セルのデータが数値のときは右寄せ
If IsNumeric(Selection.Cells(r, c)) Then
st = st & "align=right "
End If

buf = Selection.Cells(r, c).Text

' セル内で「Alt + Enter」で改行したかどうかをチェックし、
' 改行文字があれば半角スペースに変換して、
' "width" と "word-spacing" を設定する。
If InStr(1, buf, vbLf) > 0 Then
buf = Replace(buf, vbLf, " " )
st = st & "width=80 style=word-spacing:560;"
Else
st = st & "style=line-height:5pt;"
End If

st = st & " '``"
st = st & buf
st = st & vbCrLf

Next c

Next r

' 新しいワークシートを作成し、
' その中に Wiki 文法に書き換えた表を出力する
Set ws = ThisWorkbook.Worksheets.Add()
ws.Cells(1, 1) = st

Set ws = Nothing

End Sub


Excel の表をマウスで選択して、マクロを実行すると、以下のようになります。


年月日 借方科目 借方金額 貸方科目 貸方金額
2006/11/1 現金 12,000 資本金 12,000
2006/11/1 病院代 F診療所 500 現金 500
2006/11/8 病院代 F診療所 500 現金 500
2006/11/8 図書費 819 未払金 819
2006/11/8 図書費 714 未払金 714
2006/11/8 図書費 1,470 未払金 1,470
2006/11/8 図書費 1,680 未払金 1,680
2006/11/8 支払手数料 260 未払金 260


これで改行も処理ができました。

転載元転載元: 玄のヘタレ歌日記

Excel の表らしく見せるためには、数値データは後揃えにしたほうがいいとの
御指摘を受けて、数値データの場合はセルの右揃えができるようにします。

そのためには、 align 属性を right にすればよいということです。
以下のブログの記事を参考にしました。

i-8jo.com(Yahoo!blog入門) - 記事本文を飾り付けてみよう「(その25)Wiki超入門15」
http://blogs.yahoo.co.jp/i_8jo/2009246.html

例えば、左揃え、中央揃え、右揃えの Wiki 文法は次のように書きます。

||<#FFFFFF' ``||
||<#CCFFFF' style=line-height:5pt; '``左揃えの例
||<#CCFFFF' style=line-height:5pt; '``中央揃えの例
||<#CCFFFF' style=line-height:5pt; '``右揃えの例
||<#FFFFFF' ``||
||<#CCFFFF' align=left style=line-height:5pt; '``ABC
||<#CCFFFF' align=center style=line-height:5pt; '``DEF
||<#CCFFFF' align=right style=line-height:5pt; '``GHI

すると、以下のようになります。

左揃えの例 中央揃えの例 右揃えの例
ABC DEF GHI

これを元に、マクロを書き換えます。
数値データを判定して、その部分だけ右揃えができるようにします。
マクロは以下の通りです。

Sub CreateSimpleWikiTable3()
' マクロ作成日 : 2007/1/28 ユーザー名 : 玄
' 選択した 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

sc = Selection.Columns.Count
sr = Selection.Rows.Count

' Wiki 文法への書き換えのコード
For r = 1 To sr

st = st & "||<#FFFFFF' ``||" & vbCrLf

For c = 1 To sc

st = st & "||<#CCFFFF' "

' セルのデータが数値: 右寄せ
' その他: 左寄せ
If IsNumeric(Selection.Cells(r, c)) Then
st = st & "align=right "
End If

' セルの縦の幅を設定
st = st & "style=line-height:5pt; '``"
st = st & Selection.Cells(r, c).Text
st = st & vbCrLf

Next c

Next r

' 新しいワークシートを作成し、
' その中に Wiki 文法に書き換えた表を出力する
Set ws = ThisWorkbook.Worksheets.Add()
ws.Cells(1, 1) = st

Set ws = Nothing

End Sub

このマクロを使用してできた表は、以下の通りです
(使用の仕方は、前回のマクロの記事を参考にしてください)。



年月日 借方科目 借方金額 貸方科目 貸方金額
2006/11/1 現金 12,000 資本金 12,000
2006/11/1 病院代(F診療所) 500 現金 500
2006/11/8 病院代(F診療所) 500 現金 500
2006/11/8 図書費 819 未払金 819
2006/11/8 図書費 714 未払金 714
2006/11/8 図書費 1,470 未払金 1,470
2006/11/8 図書費 1,680 未払金 1,680
2006/11/8 支払手数料 260 未払金 260


中央揃えの場合は、行頭の "||" を "||||" にするとできます。
これで、かなり Excel の表らしくなったことと思います。

転載元転載元: 玄のヘタレ歌日記

前回の記事でできた表は、縦の幅が大きいので、
縦長の表では少し全体が見えにくくなるかもしれません。

次のような Wiki 文法で表を作ると、

||ABC||DEF||GHI||JKL||
||MNO||PQR||STU||VWX||

以下のような表になります。

ABCDEFGHIJKL
MNOPQRSTUVWX

これでは縦に少し長いということであれば、
縦の長さを調節する属性を指定することでできます。

以下のブログ記事を参考にしました。

京都写真日記:Wiki文法を使いこなそう - 表の幅そろえて文字センタリング
http://blogs.yahoo.co.jp/suzutakaho/7777299.html

||<#FFFFFF' ``||
||<#CCFFFF' style=line-height:5pt; '``ABC
||<#CCFFFF' style=line-height:5pt; '``DEF
||<#CCFFFF' style=line-height:5pt; '``GHI
||<#CCFFFF' style=line-height:5pt; '``JKL
||<#FFFFFF' ``||
||<#CCFFFF' style=line-height:5pt; '``MNO
||<#CCFFFF' style=line-height:5pt; '``PQR
||<#CCFFFF' style=line-height:5pt; '``STU
||<#CCFFFF' style=line-height:5pt; '``VWX

上記では、セルの縦の長さを表す line-height 属性を 5pt に指定して(元々は 10pt)、
縦の長さを小さくしています。すると、以下のような表ができます。

ABC DEF GHI JKL
MNO PQR STU VWX

この表を簡単に作れるようなマクロを書いてみました。

Sub CreateSimpleWikiTable2()
' マクロ作成日 : 2007/1/25 ユーザー名 : 玄
' 選択した 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

sc = Selection.Columns.Count
sr = Selection.Rows.Count

' Wiki 文法への書き換えのコード
For r = 1 To sr

st = st & "||<#FFFFFF' ``||" & vbCrLf

For c = 1 To sc
' セルの色と縦の幅を設定
st = st & "||<#CCFFFF' style=line-height:5pt; '``"
st = st & Selection.Cells(r, c).Text
st = st & vbCrLf
Next c

Next r

' 新しいワークシートを作成し、
' その中に Wiki 文法に書き換えた表を出力する
Set ws = ThisWorkbook.Worksheets.Add()
ws.Cells(1, 1) = st

Set ws = Nothing

End Sub

このマクロの使い方は、まず Excel の表の範囲をマウスで選択して
マクロを実行すると、新しいワークシートができます。

その新しいワークシートの「A1」のセルに Wiki の表ができていますので、
それをそのまま記事にコピー&ペーストすれば出来上がりです。


そうしてできた表は、以下のとおりになります。

年月日 借方科目 借方金額 貸方科目 貸方金額
2006/11/1 現金 12,000 資本金 12,000
2006/11/1 病院代(F診療所) 500 現金 500
2006/11/8 病院代(F診療所) 500 現金 500
2006/11/8 図書費 819 未払金 819
2006/11/8 図書費 714 未払金 714
2006/11/8 図書費 1,470 未払金 1,470
2006/11/8 図書費 1,680 未払金 1,680
2006/11/8 支払手数料 260 未払金 260


これも Excel の表に新たに列を挿入して、 "|| 〜" をコピーすれば、
マクロを使わなくても作ることはできますね。

転載元転載元: 玄のヘタレ歌日記

全1ページ

[1]


.
山本 健太郎
山本 健太郎
非公開 / 非公開
人気度
Yahoo!ブログヘルプ - ブログ人気度について
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

ブログバナー

Yahoo!からのお知らせ

よしもとブログランキング

もっと見る

[PR]お得情報

CMで話題のふるさと納税サイトさとふる
毎日お礼品ランキング更新中!
2019年のふるさと納税は≪12/31まで≫
数量限定!イオンおまとめ企画
「無料お試しクーポン」か
「値引きクーポン」が必ず当たる!

その他のキャンペーン


プライバシー -  利用規約 -  メディアステートメント -  ガイドライン -  順守事項 -  ご意見・ご要望 -  ヘルプ・お問い合わせ

Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.

みんなの更新記事