記法 †
複数行プラグイン †
複数行プラグインの引数に連続した'{'を記述する場合は、引数を囲むために使用する'{'の数を変更する。
#xxx{{{
...}}...
}}}
特殊記号のエスケープ †
数値参照文字を使用することで、疑似的にエスケープすることができる。
例)取消線
以下のように記述すると、取り消し線と見なされてしまう。(hogehoege)
%%hogehoge%%
以下のように「%」を文字コードで指定することで、記号をそのまま表示されることができる。(%%hogehoge%%)
%%hogehoge%%
便利ツール †
Excelの表をPukiwiki記法に変換するマクロ †
以下の関数をExcelマクロとして実行すると、変換した文字列型が返る。
- 注意点
- ヘッダ/フッタ行の末尾の h/f は付与されないため、適宜追加が必要
- 書式設定行(末尾c)も必要であれば追加が必要
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
| | Private Function ConvertPukiWiki( _
ByVal blWithFormat As Boolean _
) As String
Dim strResult As String Dim intRowS As Integer Dim intRowE As Integer Dim intColS As Integer Dim intColE As Integer Dim intRow As Integer Dim intCol As Integer Dim blMargeUpRow As Boolean Dim blMargeRightCol As Boolean
intRowS = Selection(1).row
intRowE = Selection(Selection.Count).row
intColS = Selection(1).Column
intColE = Selection(Selection.Count).Column
strResult = ""
For intRow = intRowS To intRowE
For intCol = intColS To intColE
Dim rngCrnt As Range Dim rngCrntMerge As Range
strResult = strResult & "|"
blMargeUpRow = False
blMargeRightCol = False
Set rngCrnt = Cells(intRow, intCol)
Set rngCrntMerge = rngCrnt.MergeArea
If rngCrnt.MergeCells Then
If intRow > intRowS Then
If Cells(intRow - 1, intCol).MergeArea.Address = rngCrntMerge.Address Then
blMargeUpRow = True
End If
End If
If blMargeUpRow Then
strResult = strResult & "~"
Else
If intCol < intColE Then
If Cells(intRow, intCol + 1).MergeArea.Address = rngCrntMerge.Address Then
blMargeRightCol = True
End If
End If
If blMargeRightCol Then
strResult = strResult & ">"
Else
strResult = strResult & GetCellInfoStr(rngCrntMerge, blWithFormat)
End If
End If
Else
strResult = strResult & GetCellInfoStr(rngCrntMerge, blWithFormat)
End If
Next
strResult = strResult & "|" & vbCrLf
Next
ConvertPukiWiki = strResult
End Function
Private Function GetCellInfoStr( _
ByRef rngCrnt As Range, _
ByVal blWithFormat As Boolean _
) As String
Dim strResult As String
If blWithFormat Then
strResult = GetCellAlignmentStr(rngCrnt) & _
GetCellForeColorStr(rngCrnt) & _
GetCellBackColorStr(rngCrnt) & _
GetCellValueStr(rngCrnt)
Else
strResult = GetCellValueStr(rngCrnt)
End If
GetCellInfoStr = strResult
End Function
Private Function GetCellAlignmentStr( _
ByRef rngCrnt As Range _
) As String
Dim strResult As String
Select Case rngCrnt.HorizontalAlignment
Case xlGeneral
strResult = ""
Case xlLeft
strResult = ""
Case xlCenter
strResult = "CENTER:"
Case xlRight
strResult = "RIGHT:"
End Select
GetCellAlignmentStr = strResult
End Function
Private Function GetCellForeColorStr( _
ByRef rngCrnt As Range _
) As String
Dim strResult As String
If Not IsNull(rngCrnt.Font.Color) Then
strResult = "COLOR(#" & GetRGBStr(rngCrnt.Font.Color) & "):"
End If
If strResult = "COLOR(#000000):" Then
strResult = ""
End If
GetCellForeColorStr = strResult
End Function
Private Function GetCellBackColorStr( _
ByRef rngCrnt As Range _
) As String
Dim strResult As String
If Not IsNull(rngCrnt.Interior.Color) Then
strResult = "BGCOLOR(#" & GetRGBStr(rngCrnt.Interior.Color) & "):"
End If
If rngCrnt.Interior.Pattern <> xlSolid Then
strResult = ""
End If
GetCellBackColorStr = strResult
End Function
Private Function GetRGBStr( _
ByVal lngColor As Long _
) As String
Dim strRGB As String Dim strHex As String
strHex = Hex(lngColor)
strHex = String(8 - Len(strHex), "0") & strHex
strRGB = Mid(strHex, 7, 2)
strRGB = strRGB & Mid(strHex, 5, 2)
strRGB = strRGB & Mid(strHex, 3, 2)
GetRGBStr = strRGB
End Function
Private Function GetCellValueStr( _
ByRef rngCrnt As Range _
) As String
Dim strResult As String
strResult = rngCrnt(1, 1).Value
strResult = Replace(strResult, vbLf, "&br;")
strResult = Replace(strResult, "|", "|")
GetCellValueStr = strResult
End Function
|