役所などからの封筒や各種請求書の封筒の内側には
ランダムな模様や文字が印刷されています。
それによって中身が見えないようになっています。
ちょっと前に下の画像のようなシートが貼られた
ハガキがきました。
ランダムな模様や文字ではなく数字でした。
面白い模様だなっと思ったので
これをExcelで作ってみます。
コードはこちら
ランダムな数字を作成するコード:Sub macro110724a() 'プライバシーシート
Sheets.Add Cells.Interior.ColorIndex = 2 Dim i As Integer, j As Integer Dim MyRange As Range Dim r As Range Dim tb As Object Dim d As Integer Dim num1 As Integer, num2 As Integer d = 12 '文字の大きさpt 'セルの大きさ変更 Cells.ColumnWidth = 8 Cells.RowHeight = 30
'ランダムな数字の行数 num1 = Int(Cells(1, 1).Height / (d / 2)) - 1 'ランダムな数字の横の文字数 num2 = Int(Cells(1, 1).Width / (d / 2)) - 2 Set MyRange = Range("A1:C3") For Each r In MyRange For i = 0 To num1 '行 For j = 0 To num2 - 1 '列 'テキストボックス作成 Set tb = ActiveSheet.Shapes.AddTextbox( _ msoTextOrientationHorizontal, _ r.Left + j * (r.Width / num2) + d * Sgn(0.5 - Rnd) * Int(Rnd * 20) / 100, _ r.Top + i * (r.Height / 2 / num1) + d * Sgn(0.5 - Rnd) * Int(Rnd * 20) / 100, _ 100, 100).DrawingObject 'ボックス内の文字列 tb.Characters.Text = Int(Rnd * 10) 'ここから 'フォント With tb.Characters.Font .Name = "MS Pゴシック" 'フォント名 .FontStyle = "太字" 'スタイル '標準/斜体/太字/太字 斜体(フォントで異なる場合も) .Size = d 'サイズ .ColorIndex = 0 '色 End With '配置 With tb .HorizontalAlignment = xlLeft '文字の配置-横位置 'xlLeft/xlCenter/xlRight/xlJustify/xlDistributed .VerticalAlignment = xlTop '文字の配置-縦位置 'xlTop/xlCenter/xlBottom/xlJustify/xlDistributed Select Case Int(Rnd * 3) Case 0 .Orientation = xlHorizontal '方向 Case 1 .Orientation = xlVertical '方向 Case 2 .Orientation = xlUpward '方向 Case 3 .Orientation = xlDownward '方向 End Select .AutoSize = True '自動サイズ調整 End With '色と線-塗りつぶし With tb.ShapeRange.Fill .Visible = msoFalse '色-ありなし End With '色と線-線 With tb.ShapeRange.Line .Visible = msoFalse '色-ありなし End With 'ここまで Next j Next i Next r End Sub |
変数dとセルの高さと幅、
AddTextboxメソッドのLeft、Top引数の数式、
を変更すると数字の出方が変わります。
変数MyRangeで範囲をして指定ます。
ここを広範囲にすると
フリーズすることがあるかもしれません。
保存してから実行してください。
実行後はこのようになります。
ちょっと違いますかね?
市販のA4が入る封筒は紙が薄いので、
確定申告のとき中身がスケスケで
さすがにこれでは嫌だなと思った経験があります。
これをA4サイズで作成して印刷すれば、
確定申告のときなど
書類と一緒に封筒にいれるとある程度透けないと思います。
コメント