Word VBA KOKUYOタックインデックス タ-PC20

#概念
KOKUYOのラベル印刷はどれくらい使うかで対応方法が変わる
## 少量多頻度の場合
テンプレートにあるのはA4でとても使い切れない。
ただし
[Ricoho プリンター全機種の対応一覧（○×表）](https://www.ricoh.co.jp/printer/paper/pdf/)
タ-PC20はこのリストにない。
[KONIKAMINLOTA BIZHUB C554 -C524](https://www.konicaminolta.jp/business/download/copiers/bizhub_c554_c454/guide/contents/id13-_100434665.html)

### 手書きする
字がきれいならば、これが一番正確で早いだろう。特にPCを使うまでもない。
##KOKUYOのラベルはタイトルブレーン2を購入して印刷する
https://www.kokuyo-shop.jp/shop/ProductDetail.aspx?sku=4901480161426&CD=&WKCD=
タイトルブレーン対応と書いてあるラベルはこれで印刷できる。タ-2X系もタイトルブレーン対応である。
このため、通常のプリンターでは印刷が困難だと思われるタ-20系にも使用ができる。
しかも、使い残したラベルにも印刷ができる。
しかし、44000円というのがネック。
また黒1色しかないようだ。いくつかの説明を見ると、インクリボンの種類も変えなければいけないらしい。

カラーレーザー＆インクジェット用はかどりラベル(24面 ハガキ宛名用)KPC-E124-2
###KOKUYOの合わせ名人を使う
当然ながら、これがメジャーだと思う。
https://www.kokuyo-st.co.jp/stationery/awase/
最近はダウンロード不要のWEB版まである
カラープリンターも想定されている


###Microsoft Excelを使う
住所的なラベルは、大きささえ合えばこちらでも良い。
Excelでラベルを印刷する方法は検索すればたくさんある。
しかし、Microsoft　Excelはもともと印刷に向いていないのでこれはタックインデックスには難しい。
最大の難点は縦書きにしても縦中横ができないこと。


###Microsoft Publisherを使う
MICOROFT 365 SOLOなら、Publisherがある。
基本は今回と同じ（はず）
なので、コードが流用できる。
しかし、インストールされいないこともしばしば。
というかインストールされていても使ったことがない人のほうが多いかもしれない。
しかし、こうした1枚もののフォームは強い。

###Microsoft Wordを使う
全くおすすめ出来ない。

##仕様
今回はExcelと同様左上から1，1として展開する。
文字は左に倒れた状態となる。
大体1行しか入らない。
フォントはMS 明朝にしている。
Offficeのテーマをテーマ、テーマフォント、テーマカラー、テーマエフェクトをすべてOffice2010－2007に変更し、テーマのフォントをMS P ゴシックからすべてMS 明朝の等幅フォントにカスタマイズしている。
##タックインデックスの種類に注意
[はかどりタックインデックス](https://www.kokuyo-st.co.jp/stationery/hakadori/tackindex/index.html)
<B>[タックインデックス〈パソプリ〉](https://www.kokuyo-st.co.jp/stationery/pasopuri/)</B>
今回はこちらを使う。タ-PC20 BはBlueである。
しかし実はこの中にない、タイトルブレーン対応ラベルというのがある。カタログを検索してみる。
なお、タックインデックスのTuckはつまむという意味だと思われる。
https://www.kokuyo-st.co.jp/search/sp_search_1.php?&ss=1&ss2=15D1&ssryo=1&pgmax=20&c4=&pgmax=80
実はこちらの中にあるタ-20のほうがよく売られている。大抵の人はPCで印刷しないうえ、やすいため、こちらしか売れないのだろう。
2022/02/05現在で、ヨドバシカメラは4店しか在庫がない。しかも僅少。
https://www.yodobashi.com/ec/product/stock/100000001001555524/
見分け方は品番にPCがついているかいないか、枠以外がはくり紙（シールの台紙）になっていないかがポイントである。
<B>タ-20系は印刷できない</b>
これは枠以外がシール地なので、ローラーにラベルを巻き込む恐れがある。今はだいぶバラしやすいのでそこまでの危険性はないのかもしれないが。余白もないので難しい。
<B>タ-20系はWeb版の合わせ名人にもない</b>ことからも、これは無理だと思う。
###類似している商品 2022年2月現在
ニチバン マイタック™PCインデックス https://www.nichiban.co.jp/general/stationery/adhesion_label/mytack_pcindex/
ニチバン ラベルメイト Light 5 をダウンロードして印刷
ライオン事務器 インデックスラベルとしてBM*-0という型番の商品はあるが、印刷には不向きである。
かつてはPC対応のものがあり、パットラベルで印刷できたようだが、現在は公式のカタログにPC対応のものはないようだ。
A-ONE 31481：[インデックスラベルシール](https://www.a-one.co.jp/product/search/detail.php?id=31481)ラベル屋さんで印刷できる。ただし、A4なので1度にかなりの枚数を印刷しないと無駄になってしまう。
###手書き用しかない理由
[インデックス印刷について 総務の森 相談の広場](https://www.soumunomori.com/room/thread/trd-167595/)
日本人の共通の理解として、ラベルを印刷するのは難しい。したがって手書きが早い。使うならKOKUYOと合わせ名人（旧パソプリ）というのがスタンダード。
このため、大量に印刷するA4サイズのタックインデックスはあってもハガキ大のタックインデックスは普通は売っていないということになっている。

#手順
## 0. 現在使用しているOffficeのバージョンと「テーマ」を確認する
今回SetKayoutのバージョン1.2からテーマも以前のバージョンにしている。游明朝対策。したがって、現在使っているテーマ、カラースキーム、フォントを確認する。
通常は単純にOfficeだと思わえる。
[Word または Excel でテーマを変更して既定のテーマにする](https://support.microsoft.com/ja-jp/office/word-%E3%81%BE%E3%81%9F%E3%81%AF-excel-%E3%81%A7%E3%83%86%E3%83%BC%E3%83%9E%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%97%E3%81%A6%E6%97%A2%E5%AE%9A%E3%81%AE%E3%83%86%E3%83%BC%E3%83%9E%E3%81%AB%E3%81%99%E3%82%8B-c846f997-968e-4daa-b2d4-42bd2afef904)
[テーマを適用する](https://support.microsoft.com/ja-jp/office/%E3%83%86%E3%83%BC%E3%83%9E%E3%82%92%E9%81%A9%E7%94%A8%E3%81%99%E3%82%8B-55922445-1629-4a9f-ae63-1e2c1f295fdf)
デザイン フォント 色 効果の4つを順にOfficeに戻すとデフォルトになる。
過去の互換性を重視敷いてOffice 2010－2007になっている場合もある。
基本ここを変えるのはOffice2010－2007にするだけで、基本はやめたほうが良い。
せいぜい、フォントをMS 明朝に変える程度である。
なぜここを変更するかというと、テキストボックスの書式は、ここが強い影響をつけるためである。
そして、戻すのはテーマがWord Excel PowerPointに影響するためである。
したがって、プロのPageSetUpはその前に必ずテーマが存在する。
省略している場合はOfficeを前提としているかテーマが強く影響しない場合である。

## 1.手差し印刷の設定方法を確認
手差しトレイ等で印刷するとき表に印刷されるか、裏に印刷されるかを予め確認する。また印刷用紙をラベル紙を選ぶ。
マニュアルを確認する。
注意しなければ行けないのは、プリンターの解説では、インデックスに印刷するというのはキングジムのドッチファイルの中紙の場合があること。
[RICHO インデックス紙に印刷する](https://manuals.ricoh.com/mfp/p_manual/MPC8003JPN/ja/printer/int/0017.htm)
キングジムは「[カラーインデックス](https://www.kingjim.co.jp/products/brand/color-index.html)といい、コクヨは[仕切りカード](https://www.kokuyo-st.co.jp/stationery/shikiricard/)
のことである。AveryはDividersと言っている[11134](https://www.avery.com/products/dividers/11134)

ちなみに1枚あたりのインデックスの数を日本語では面といい、英語ではSlidesと言っている。
[Avert Square Blankc Labels(Blank Square Labels by the Sheet)](https://www.avery.com/blank/shape/square-labels)
[Diverders](https://www.avery.com/products/dividers?toggle=printerType,onsale)
Averyは仕切りカードは非常に豊富だ。

検索するときはラベルに印刷するが該当する。
シールに印刷するにすると、途端に明るいキラキラしたページがヒットする。
プリンター ラベル用紙 印刷
プリンター ハクリ紙 印刷

##2. タックインデックスタ-PC20を購入する
上記が原因だと思われるが、タ-PC20はあまり店頭にないらしい。まずタ-20しか見つからない。
なので、間違って買っても自己責任である。ちなみに筆者も間違えました。まさかPCなしの型番がこんなに違うとは。。。

##3. テストプリント紙を作成
テストはハガキ大に紙を切りコピーしたものに行う。正確にきれいに切らないと故障の原因になるので注意。
ちなみにはがきの大きさは葉書=100×148mm で、A4を4つに切ったA6=105×148mmとは幅が10mm違う。このため、4つに折ってに切っても合わない。
一番いいのはハガキサイズのコピー/印刷紙を用意すること。
それにラベル紙をコピーする。
新品だと設定シートがあるので、それをコピーしても良い。
なれるまでは、大体1枚に月5枚程度はいる。つまりここでも手書きが早い。
これでテストプリントする。
多分、普通はここまで読んで、あまりに難しいので手でインデックスを書き始めると思う。

##4. 以下のコードをWordにいれてSetLayoutを実行する。
SetLayoutを実行して用紙レイアウトを設定。このとき、簡易な説明が表示される。
用紙の大きさははがきサイズに変更される。

##5.SetLayoutの実行、カスタムテンプレートの保存

[テンプレートを作成する](https://support.microsoft.com/ja-jp/office/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B-86a1d089-5ae2-4d53-9042-1191bce57deb)
マクロ付きテンプレートとして保存しようとすると、自動的にフォルダが変わり通常は、
`%USERPROFILE%\Documents\Office のカスタム テンプレート\`に保存される。わざわざ空白が入る。
英語でも
` %USERPROFILE%\Documents\Custom Office Templates\`になる。

4．を実行してテンプレートとして保存、ファイル名を`Kokuyo_TA_PC20.dotm`とすると
`%USERPROFILE%\Documents\Office のカスタム テンプレート\Kokuyo_TA_PC20.dotm'
として保存される。

なお、公式は未だにマイドキュメントと間違ったことを言っているが、現在はDocumentsである。

##6.テンプレートをダブルクリックして開く。
使うときはOfficeのカスタムテンプレートにあるdotmを起動してInsertTextBoxを実行
これで枠が合うか確かめる。多少はずれるが、枠の内側で調整して収まっている。
次に文字を入れる。4文字ならだいたい10ポイントか9ポイント
これで印刷して、だいたい合うならToggleLinesを実行してテキストボックスの枠線を消して保存。
なお、印刷は手差しで、用紙の大きさははがきで縦、ラベル等に設定する必要がある。
なれてきたら、最初から罫線を非表示にして記入しても良い。


###6-1.記入上の注意
基本1ページしか想定していないので、複数のページになるときは、1ページ毎に保存すること。
半角のアルファベットは「縦中横」を使う。この他2桁の数字も「縦中横」が使えるが、丸付き数字にしたほうが見やすい。この辺はフォントや好みで分かれる。
また、このため、[ページ設定] で指定した 1行の文字数を使用するはFalseにする。（前回まではしていなかったので変更した）
[](https://answers.microsoft.com/ja-jp/msoffice/forum/all/%E3%83%AF%E3%83%BC%E3%83%89%E3%81%A7%E7%B8%A6/5eb00cbe-c068-477d-aaad-35e2f1a4b8ec)
[Word 2016で縦書き文章内の半角文字を縦向きにする方法 ;更新日：2019/07/17](https://faq.nec-lavie.jp/qasearch/1007/app/servlet/relatedqa?QID=018116)
[「縦中横」の作業効率を上げたい！（ショートカットキーの割り当て） - タテがきOffice　―For 日本文学研究者・国語の先生](https://nokibano.hateblo.jp/entry/2015/12/30/231504)
いつまで残るかわからないが、クィックアクセスツールバーに登録すべき。
[クイック アクセス ツールバーをカスタマイズする](https://support.microsoft.com/ja-jp/office/%E3%82%AF%E3%82%A4%E3%83%83%E3%82%AF-%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9-%E3%83%84%E3%83%BC%E3%83%AB%E3%83%90%E3%83%BC%E3%82%92%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA%E3%81%99%E3%82%8B-43fff1c9-ebc4-4963-bdbd-c2b6b0739e52)
###6-2.スタイルの適用
一応6ポイントと8ポイントを作ってみた。
しかし、最初は非表示なのでスタイルの適用を表示させてから選択する必要がある。
##7.テスト印刷
まず、枠がだいたい入っているか確認のため印刷。左側の1列目は横がきっちりあっているはずである。それから右に行くほどずれる。
次に1度入力して印刷してみる。
忘れがちなのが、ここで誤字脱字や順番が間違っていないかを確認すること。
左上を(1,1)として2列めを(2,1)の順できれば貼る順番で並べていく。
出来上がっったWordは文書の有無のチェックを兼ねることになる。

##8.枠線を消して、ラベルに印刷
これでうまく印刷できていれば、`ToggleLines`を実行してテキストボックスの枠線を消して印刷する。
`ToggleLines`
##9.保存
出来上がったら、保存する。この保存される文書はテンプレートではなく、マクロのない通常のファイルdocxとなる。
##10.テーマを戻す
[ユーザー設定のテーマを作成するには Word 2013 wanichan](https://www.wanichan.com/pc/word/2013/9/15.html)
もとのテーマに戻す。

#コード

##ポイント
###テンプレートからテキストボックスに挿入するのはThisDocumentではなく、ActiveDocument
Wordのテンプレートから起動した場合、あくまでも新規文書にテキストボックスを入れる必要がある。
###関数
MMtoP いちいち書くと大変なので、関数化して名前を省略。
また、書式設定を関数で行っている。
そして図形には名前をつける。
Singleのところとロングの数字にリテラルをつける。そうしないとずれる可能性がある。

```vb
Option Explicit
Const cnFnt = "MS 明朝"
Sub SetLayout()
' Ver 2.0.00
' Stable Version
' Themaの変更設定を追加 1.3.00
Dim tTheme As OfficeTheme
Dim tfThemeFontScheme As ThemeFontScheme
Dim tfThemeFont As ThemeFont
Dim tfThemeColor As ThemeColor
Dim tfThemeColorScheme As ThemeColorScheme
Dim tfThemeEffect As ThemeEffectScheme
' 互換性対策のため、テーマを変更 Word 2007以前はテーマがない
SendKeys "{ESC}", True 'TextBOXにフォーカスしたままになっていることを想定し、Sendkeyを入れる Ver2.0.00
SendKeys "{ESC}", True
With Application
If .Version >= 15 Then
 .ActiveDocument.ApplyDocumentTheme Left(.Path, InStrRev(Application.Path, "\") - 1) & "\Document Themes " & Format(.Version, "00") & "\Office Theme.thmx"
Set tTheme = .ActiveDocument.DocumentTheme
Set tfThemeFontScheme = tTheme.ThemeFontScheme
tfThemeFontScheme.Load (Left(.Path, InStrRev(Application.Path, "\") - 1) & "\Document Themes " & Format(.Version, "00") & "\Theme Fonts\Office 2007 - 2010.xml")
Set tfThemeFont = tfThemeFontScheme.MajorFont(msoThemeEastAsian)
tfThemeFont.Name = cnFnt
Set tfThemeFont = tfThemeFontScheme.MinorFont(msoThemeEastAsian)
tfThemeFont.Name = cnFnt
Set tfThemeColorScheme = tTheme.ThemeColorScheme
tfThemeColorScheme.Load (Left(.Path, InStrRev(Application.Path, "\") - 1) & "\Document Themes " & Format(.Version, "00") & "\Theme Colors\Office 2007 - 2010.xml")
Set tfThemeEffect = tTheme.ThemeEffectScheme
tfThemeEffect.Load (Left(.Path, InStrRev(.Path, "\") - 1) & "\Document Themes " & Format(.Version, "00") & "\Theme Effects\Office 2007 - 2010.eftx")
End If
End With
Call AllClear ' < - Add Command
    Selection.WholeStory
    With ActiveDocument.Styles(wdStyleNormal).Font
        If .NameFarEast = .NameAscii Then
         .NameAscii = cnFnt
        End If
        .NameFarEast = cnFnt
    End With
    With ActiveDocument.PageSetup
        .LineNumbering.Active = False ' 現在のセクションのページに行番号を付けない
        .Orientation = wdOrientPortrait ' wdOrientPortrait 印刷レイアウト 縦方向
        .TopMargin = mmToP(18)
        .BottomMargin = mmToP(10)
        .LeftMargin = mmToP(6.5!)
        .RightMargin = mmToP(6.2!) ' 6.5 -> 6.2
        .Gutter = mmToP(0)
        .HeaderDistance = mmToP(15)
        .FooterDistance = mmToP(17.5!)
        .PageWidth = mmToP(100)
        .PageHeight = mmToP(148)
        .FirstPageTray = wdPrinterManualFeed ' 手差し
        .OtherPagesTray = wdPrinterManualFeed
        .SectionStart = wdSectionNewPage
        .OddAndEvenPagesHeaderFooter = False
        .DifferentFirstPageHeaderFooter = False
        .VerticalAlignment = wdAlignVerticalTop ' wdAlignVerticalTop 上に配置
        .SuppressEndnotes = False
        .MirrorMargins = False
        .TwoPagesOnOne = False
        .BookFoldPrinting = False
        .BookFoldRevPrinting = False
        .BookFoldPrintingSheets = 1
        .GutterPos = wdGutterPosLeft 'とじしろを左に
        .LayoutMode = wdLayoutModeDefault '文字列の配置にグリッドは使用されません。
    End With
Call AddMincho6Style
Call AddMincho8Style
CommandBars("Apply Styles").Visible = False
With ActiveDocument
.FormattingShowFilter = wdShowFilterStylesAll
.FormattingShowFont = True
.FormattingShowParagraph = True
.FormattingShowNumbering = True
' Ver 2.0.0 マニュアル見直し
.Range = "使い方" & vbCrLf & _
"1.この使い方を印刷するか、PDFで保存すること。" & vbCrLf & _
"2.使用しているプリンターのラベル用紙を手差しで印刷する場合の設定を確認する。" & vbCrLf & _
"3.Wordのマクロを有効にする。" & vbCrLf & _
"4.Wordのデフォルトのテーマ、テーマフォント、テーマカラー（スキーム）、テーマエフェクトを確認する。大抵は標準。わからないときはとりあえず標準とする。" & vbCrLf & _
"5.ALT+F11 -> I => M でモジュールを挿入し、そこにコードをコピペする。" & vbCrLf & _
"6.A４でない場合やこの使い方が表示されていない場合、ALT+F8でSetLayoutを実行する。" & vbCrLf & _
"7.このファイルが保存されていなければ、ドキュメントの「オフィスのカスタムテンプレート」にテンプレートとして保存する。" & vbCrLf & _
"8.一旦ワードを終了させ、ダブルクリックしてテンプレートを開く。" & vbCrLf & _
"8.ALT+F8でInsertTextboxを実行する。" & vbCrLf & _
"9.値を入力して、フォント等を調整する。スタイルを活用すると変更しやすい" & vbCrLf & _
"10.テストプリントで仕上がりを確認して、枠が合えば、ALT+F8でTogglelinesを実行し、罫線を消去して印刷する。" & vbCrLf & _
"11.必要であれば、印刷後、名前をつけてドキュメントを保存する。これにはマクロが含まれないので、4の手順は実行できない。テンプレートをダブルクリックして新規作成することになる。" & vbCrLf & _
"12.枠線はToggleLinesをもう一度実行すると復活する。" & vbCrLf & _
"13.次に新たなWord文書を作成するときは、テーマが変更されたままになっていないか確認する。" & vbCrLf & _
"14.作り直す場合や誤って消した場合、4から繰り返す。"
End With
End Sub

Sub AddMincho6Style()
    On Error Resume Next
    ActiveDocument.Styles("MSMincho6pt").Delete
    On Error GoTo 0
    ActiveDocument.Styles.Add Name:="MSMincho6pt", Type:=wdStyleTypeParagraph
    ActiveDocument.Styles("MSMincho6pt").AutomaticallyUpdate = False
    With ActiveDocument.Styles("MSMincho6pt").Font
        .NameFarEast = cnFnt
        .NameAscii = cnFnt

        .Name = cnFnt
        .Size = 6
        .Bold = False
        .Italic = False
        .Underline = wdUnderlineNone
        .UnderlineColor = wdColorAutomatic
        .StrikeThrough = False
        .DoubleStrikeThrough = False
        .Outline = False
        .Emboss = False
        .Shadow = False
        .Hidden = False
        .SmallCaps = False
        .AllCaps = False
        .Color = wdColorAutomatic
        .Engrave = False
        .Superscript = False
        .Subscript = False
        .Spacing = -0.2!
        .Scaling = 100
        .Kerning = 0
        .DisableCharacterSpaceGrid = False
        .EmphasisMark = wdEmphasisMarkNone
        .Ligatures = wdLigaturesNone
        .NumberSpacing = wdNumberSpacingDefault
        .NumberForm = wdNumberFormDefault
        .StylisticSet = wdStylisticSetDefault
        .ContextualAlternates = 0
    End With
    With ActiveDocument.Styles("MSMincho6pt").ParagraphFormat
        .LeftIndent = 0
        .RightIndent = 0
        .SpaceBefore = 0
        .SpaceBeforeAuto = False
        .SpaceAfter = 0
        .SpaceAfterAuto = False
        .LineSpacingRule = wdLineSpaceAtLeast
        .LineSpacing = 8
        .Alignment = wdAlignParagraphLeft
        .WidowControl = False
        .KeepWithNext = False
        .KeepTogether = False
        .PageBreakBefore = False
        .NoLineNumber = False
        .Hyphenation = True
        .FirstLineIndent = 0
        .OutlineLevel = wdOutlineLevelBodyText
        .CharacterUnitLeftIndent = 0
        .CharacterUnitRightIndent = 0
        .CharacterUnitFirstLineIndent = 0
        .LineUnitBefore = 0
        .LineUnitAfter = 0
        .MirrorIndents = False
        .TextboxTightWrap = wdTightNone
        .CollapsedByDefault = False
        .AutoAdjustRightIndent = True
        .DisableLineHeightGrid = True
        .FarEastLineBreakControl = False
        .WordWrap = True
        .HangingPunctuation = True
        .HalfWidthPunctuationOnTopOfLine = False
        .AddSpaceBetweenFarEastAndAlpha = True
        .AddSpaceBetweenFarEastAndDigit = True
        .BaseLineAlignment = wdBaselineAlignCenter
    End With
    ActiveDocument.Styles("MSMincho6pt").NoSpaceBetweenParagraphsOfSameStyle = _
         True
    ActiveDocument.Styles("MSMincho6pt").ParagraphFormat.TabStops.ClearAll
    With ActiveDocument.Styles("MSMincho6pt").ParagraphFormat
        With .Shading
            .Texture = wdTextureNone
            .ForegroundPatternColor = wdColorAutomatic
            .BackgroundPatternColor = wdColorAutomatic
        End With
        .Borders(wdBorderLeft).LineStyle = wdLineStyleNone
        .Borders(wdBorderRight).LineStyle = wdLineStyleNone
        .Borders(wdBorderTop).LineStyle = wdLineStyleNone
        .Borders(wdBorderBottom).LineStyle = wdLineStyleNone
        With .Borders
            .DistanceFromTop = 1
            .DistanceFromLeft = 4
            .DistanceFromBottom = 1
            .DistanceFromRight = 4
            .Shadow = False
        End With
    End With
    With ActiveDocument.Styles("MSMincho6pt")
      .LanguageID = wdJapanese
      .NoProofing = False
      .LanguageID = wdJapanese
      .NoProofing = False
      .Frame.Delete
      .UnhideWhenUsed = False
    End With
End Sub


Sub AddMincho8Style()
    On Error Resume Next
    ActiveDocument.Styles("MSMincho8pt").Delete
    On Error GoTo 0
    ActiveDocument.Styles.Add Name:="MSMincho8pt", Type:=wdStyleTypeParagraph
    ActiveDocument.Styles("MSMincho8pt").AutomaticallyUpdate = False
    With ActiveDocument.Styles("MSMincho8pt").Font
        .NameFarEast = cnFnt
        .NameAscii = cnFnt
        .NameOther = "+本文のフォント"
        .Name = cnFnt
        .Size = 8
        .Bold = False
        .Italic = False
        .Underline = wdUnderlineNone
        .UnderlineColor = wdColorAutomatic
        .StrikeThrough = False
        .DoubleStrikeThrough = False
        .Outline = False
        .Emboss = False
        .Shadow = False
        .Hidden = False
        .SmallCaps = False
        .AllCaps = False
        .Color = wdColorAutomatic
        .Engrave = False
        .Superscript = False
        .Subscript = False
        .Spacing = -0.2!
        .Scaling = 100
        .Kerning = 0
        .DisableCharacterSpaceGrid = False
        .EmphasisMark = wdEmphasisMarkNone
        .Ligatures = wdLigaturesNone
        .NumberSpacing = wdNumberSpacingDefault
        .NumberForm = wdNumberFormDefault
        .StylisticSet = wdStylisticSetDefault
        .ContextualAlternates = 0
    End With
    With ActiveDocument.Styles("MSMincho8pt").ParagraphFormat
        .LeftIndent = mmToP(0)
        .RightIndent = mmToP(0)
        .SpaceBefore = 0
        .SpaceBeforeAuto = False
        .SpaceAfter = 0
        .SpaceAfterAuto = False
        .LineSpacingRule = wdLineSpaceAtLeast
        .LineSpacing = 8
        .Alignment = wdAlignParagraphLeft
        .WidowControl = False
        .KeepWithNext = False
        .KeepTogether = False
        .PageBreakBefore = False
        .NoLineNumber = False
        .Hyphenation = True
        .FirstLineIndent = mmToP(0)
        .OutlineLevel = wdOutlineLevelBodyText
        .CharacterUnitLeftIndent = 0
        .CharacterUnitRightIndent = 0
        .CharacterUnitFirstLineIndent = 0
        .LineUnitBefore = 0
        .LineUnitAfter = 0
        .MirrorIndents = False
        .TextboxTightWrap = wdTightNone
        .CollapsedByDefault = False
        .AutoAdjustRightIndent = True
        .DisableLineHeightGrid = True
        .FarEastLineBreakControl = False
        .WordWrap = True
        .HangingPunctuation = True
        .HalfWidthPunctuationOnTopOfLine = False
        .AddSpaceBetweenFarEastAndAlpha = True
        .AddSpaceBetweenFarEastAndDigit = True
        .BaseLineAlignment = wdBaselineAlignCenter
    End With
    ActiveDocument.Styles("MSMincho8pt").NoSpaceBetweenParagraphsOfSameStyle = _
         True
    ActiveDocument.Styles("MSMincho8pt").ParagraphFormat.TabStops.ClearAll
    With ActiveDocument.Styles("MSMincho8pt").ParagraphFormat
        With .Shading
            .Texture = wdTextureNone
            .ForegroundPatternColor = wdColorAutomatic
            .BackgroundPatternColor = wdColorAutomatic
        End With
        .Borders(wdBorderLeft).LineStyle = wdLineStyleNone
        .Borders(wdBorderRight).LineStyle = wdLineStyleNone
        .Borders(wdBorderTop).LineStyle = wdLineStyleNone
        .Borders(wdBorderBottom).LineStyle = wdLineStyleNone
        With .Borders
            .DistanceFromTop = 1
            .DistanceFromLeft = 4
            .DistanceFromBottom = 1
            .DistanceFromRight = 4
            .Shadow = False
        End With
    End With
    With ActiveDocument.Styles("MSMincho8pt")
      .LanguageID = wdJapanese
      .NoProofing = False
      .LanguageID = wdJapanese
      .NoProofing = False
      .Frame.Delete
      .UnhideWhenUsed = False
    End With
End Sub

Sub InsertTextBox()
' For Microsoft Word
' Kokuyo タ-PC20
' 正確性は保証できない。自己責任。
' 動作はWord2016
' 1行しか入らない 9pt程度が最大
' 印刷は手差し
Dim wDoc As Word.Document: Set wDoc = ActiveDocument
Dim buf As String
Dim i As Long, iCol As Long, iRow As Long
Dim wShp As Shape, wShps As Shapes
Dim TFrm2 As TextFrame2, Tfrm As TextFrame
Dim snT As Single, snL As Single
Call AllClear

Const HWidth = 23.05!  ' 横方向へのずらし幅 mm単位 Single
iCol = 1: iRow = 1
snL = 7!
snT = 22!
For iCol = 1& To 4&
Set wShp = wDoc.Shapes.AddTextbox( _
msoTextOrientationHorizontalRotatedFarEast, _
mmToP(snL + HWidth * (iCol - 1&)), _
mmToP(snT), _
mmToP(18), _
mmToP(8)) ' msoTextOrientationHorizontalRotatedFarEast アジア言語のサポートに必要に応じて水平方向と回転
wShp.Name = "Col:" & iCol & "/Row:" & iRow
Margine2 wShp
Next
iCol = 1&: iRow = 2&
snL = 7!
snT = 32!
For iCol = 1 To 4
Set wShp = wDoc.Shapes.AddTextbox(msoTextOrientationHorizontalRotatedFarEast, mmToP(snL + HWidth * (iCol - 1)), mmToP(snT), mmToP(18), mmToP(8))
wShp.Name = "Col:" & iCol & "/Row:" & iRow
Margine2 wShp
Next
iCol = 1&: iRow = 3&
snL = 7!
snT = 51
For iCol = 1& To 4&
Set wShp = wDoc.Shapes.AddTextbox(msoTextOrientationHorizontalRotatedFarEast, mmToP(snL + HWidth * (iCol - 1)), mmToP(snT), mmToP(18), mmToP(8))
wShp.Name = "Col:" & iCol & "/Row:" & iRow
Margine2 wShp
Next
iCol = 1&: iRow = 4&
snL = 7!
snT = 61
For iCol = 1& To 4&
Set wShp = wDoc.Shapes.AddTextbox(msoTextOrientationHorizontalRotatedFarEast, mmToP(snL + HWidth * (iCol - 1)), mmToP(snT), mmToP(18), mmToP(8))
wShp.Name = "Col:" & iCol & "/Row:" & iRow
Margine2 wShp
Next
iCol = 1&: iRow = 5&
snL = 7!
snT = 79.99!
For iCol = 1& To 4&
Set wShp = wDoc.Shapes.AddTextbox(msoTextOrientationHorizontalRotatedFarEast, mmToP(snL + HWidth * (iCol - 1)), mmToP(snT), mmToP(18), mmToP(8))
wShp.Name = "Col:" & iCol & "/Row:" & iRow
Margine2 wShp
Next
iCol = 1&: iRow = 6&
snL = 7!
snT = 89.99!
For iCol = 1& To 4&
Set wShp = wDoc.Shapes.AddTextbox(msoTextOrientationHorizontalRotatedFarEast, mmToP(snL + HWidth * (iCol - 1)), mmToP(snT), mmToP(18), mmToP(8))
wShp.Name = "Col:" & iCol & "/Row:" & iRow
Margine2 wShp
Next
iCol = 1&: iRow = 7&
snL = 7!
snT = 108.85!
For iCol = 1& To 4&
Set wShp = wDoc.Shapes.AddTextbox(msoTextOrientationHorizontalRotatedFarEast, mmToP(snL + HWidth * (iCol - 1)), mmToP(snT), mmToP(18), mmToP(8))
wShp.Name = "Col:" & iCol & "/Row:" & iRow
Margine2 wShp
Next
iCol = 1&: iRow = 8&
snL = 7!
snT = 119.85!
For iCol = 1 To 4
Set wShp = wDoc.Shapes.AddTextbox(msoTextOrientationHorizontalRotatedFarEast, mmToP(snL + HWidth * (iCol - 1)), mmToP(snT), mmToP(18), mmToP(8))
wShp.Name = "Col:" & iCol & "/Row:" & iRow
Margine2 wShp
Next
End Sub
Function mmToP(SngMM As Single) As Single
mmToP = Application.MillimetersToPoints(SngMM)
End Function

Function Margine2(wShape As Shape)
' Version 2.2
' デフォルトでセンターに来るように設定
With wShape.TextFrame
.MarginBottom = mmToP(1)
.MarginLeft = mmToP(1)
.MarginRight = mmToP(0.5!)
.MarginTop = mmToP(0.5!)
End With
' WordのTextBoxは中央に持っていくのはShape.TextFrameについている Paragraphformatではない。
' これはPowerPointのオートシェイプでも同様。msoAnchorMiddleの頭がmso（Microsoft Office）なので共通
' [図形内の文字列を中央揃えにするサンプルマクロ](https://www.relief.jp/docs/powerpoint-vba-center-strings-in-shapes.html)
' また90度倒した状態では倒した状態が上となり、中央揃えにされていることが観察できる。
' PowerPoint2007からマクロ機能は廃止されているが、Shapeのmso系は大体同じなので参考にはなる。Word Publisher PowerPoint共通。
With wShape.TextFrame
.VerticalAnchor = msoAnchorMiddle
End With

With wShape.TextFrame.TextRange.Font
.Size = 9
.ColorIndex = wdAuto ' Autoは通常は黒。テーマで変わる場合がある。
.Kerning = 0
.NumberSpacing = wdNumberSpacingDefault ' wdNumberSpacingDefault 既定 これらのプロパティをサポートする OpenType フォントの数字は、テキストのベースライン上に表示することも ("並び線揃え")、ベースラインをまたいで表示することも ("ぶら下げ" または "旧スタイル") できます。
.NumberForm = wdNumberFormDefault
.Spacing = -0.2!
.Name = "MS 明朝"
End With
With wShape.TextFrame.TextRange.ParagraphFormat
.Alignment = wdAlignParagraphJustifyMed ' wdAlignParagraphJustifyMed 文字間隔の縮小率を標準に設定して両端を揃えます
.BaseLineAlignment = wdBaselineAlignCenter 'wdBaselineAlignCenter 異なる大きさのフォントが1行内にあるとき、各フォントの中央の位置でそろえる
.CharacterUnitFirstLineIndent = 0
End With
'wShape.Line.Visible = False
End Function

Sub ToggleLines()
' ActiveDocumentに存在するすべてのTextBoxの枠線の表示、非表示を切り替えるマクロ
'
Dim shp As Shape
For Each shp In ActiveDocument.Shapes
  If shp.Type = msoTextBox Then
   If shp.Line.Visible = msoFalse Then
      shp.Line.Visible = msoTrue
   Else
      shp.Line.Visible = msoFalse
   End If
  End If
Next
End Sub

Sub AllShapeClear()
' テキストボックスをクリアするとき、全部消えない時があるため、カウントして残っているなら削除する
Dim wDoc As Word.Document: Set wDoc = ThisDocument
Dim wShp As Shape
Do Until wDoc.Shapes.Count = 0
For Each wShp In wDoc.Shapes
wShp.Delete: DoEvents
Next
If wDoc.Shapes.Count = 0 Then Exit Do
Loop
End Sub

Sub AllClear()
' 文字、図形ともクリアする
    Selection.WholeStory
    Selection.Delete Unit:=wdCharacter, Count:=1
End Sub

```

# まとめ
こうして作ってはみたものの、労力は一切報われないようだ。そもそも肝心のシールはどこにも売っていない。かつてあったインクジェット対応のものはみななくなってしまっている。これもペーパーレス化が進行しているという証拠とみていいと思う。もともと、インデックスは数字やアルファベット1文字程度だった。
それに2行に渡って文字を書き込むインデックスラベルも、あまりに労力がかかるので、終わっているようだ。
ちなみに数字やアルファベット、ひらがなのような単純なものは全部使い切る。
なにか単語のようなものを書く場合には、1つか2つ程度余らせる。
あとから気がついてそれを使ったり、貼り損じたときのために予備とする。
そして、記述したように、これはファイリングする文書の有無を確認するチェックリストとなる。また、ファイルを残すことにより、いつごろ文書を作ったかもわかる。
[OAラベル＜プリンタを選ばない　はかどりラベル＞＜貼ってはがせる　はかどりラベル＞ 作業スピード表記に関するお詫び](https://www.kokuyo.co.jp/newsroom/info/products/20181011.html)
よほど当社比が気に入らない人間がいたのだろう。そもそも今はこのラベルすらろくに店頭で見かけることはないのにね。