私自身、実際に出版社で書籍を出版したことはなく、皆さんご存知の通りプレジデント社の雑誌「President Next」のエクセル特集を監修させて頂いた経験しかないのですが、その時に出版社とやり取りしていて思ったのは、編集者の人の作業の多さでした。
本に載せる操作手順を私が原稿にして、操作画面をスクリーンショットしたファイルでお渡ししています。
それを出版社の方が整理してデザイナーが実際に乗るためのレイアウトをする組版という流れになります。
その時に、Word原稿に貼り付けた図がどのファイルかわからなくなるようでした。
よく考えてみれば同じような画面が連続して解説の画面になるのでよくよく見ないとどちらがどちらか分からなくなってしまうということはあると思います。
著者側としてもそれが万が一にもあべこべになってしまったらせっかく伝えたいメッセージも伝わらなくなってしまいます。
そこで、原稿を制作する段階から、どのスクリーンショットのファイルを使ったか文字でわかるようにしておくこと、また、Wordには図表番号という 画像に対する管理番号をつけて管理することができる機能もあるのでこれも活用すること、入れた画像がそのまま使わないで一部だけ切り抜く時にトリミングをしますがトリミングをするには何ステップ歌のクリックをしなければできないのでワンボタンでトリミングができるようにすること、強調するエリアを図示する図形と説明を吹き出しで描く図形もワンクリックで呼び出せること、というツールを考えた結果、次のようなツールを作成することができました。
出版社に入稿するテクニカル原稿をWordで執筆してる人へ、すばらしきツールのご紹介です。
・ボタン一発で画像を入れて図表番号を振りファイル名を付ける。
・トリミングも一発呼び出し
・強調線とか吹き出しも一発呼び出し
編集さん歓喜のツールです。 pic.twitter.com/5oDZ0f2qk2— 佐藤嘉浩(Excelの魔法使い・スピルのひと)@仙台 (@yosatonet) May 5, 2020
今回はその中の実際の動きをするコードを紹介します。
私の場合はCtrl+Shft+Alt+Iのキーを押すと、それらの一つ一つの動きを呼び出せるボタンになっているツールボックスを表示できるように、フォームを作成して、そのフォームを呼び出すVBAを仕込みました。
フォームの作り方は、新しくフォームを挿入してそこにボタンを配置してそのボタンをクリックしたときのイベントをCallしているだけです。
そのツールを呼び出すVBAを、クイックアクセスツールバーにボタンを登録してもいいですし、ショートカットキーでそのVBAを呼び出すようにしても良いと思います。
では実際のコードをご覧ください。
Option Explicit
Sub 画像操作表示()
画像操作.Show
End Sub
Sub 画像挿入()
Dim mydoc As Document
Dim gfilename As String
Dim FSO As Object
Dim selfile As String
Dim pic
Set mydoc = ActiveDocument
Set FSO = CreateObject("Scripting.FileSystemObject")
With Application.FileDialog(msoFileDialogFilePicker)
With .Filters
.Clear
.Add "*.png", "*.jpg"
End With
.AllowMultiSelect = True
If .Show Then
selfile = .SelectedItems(1)
With Selection.Range
.InsertBefore Text:=vbCr
.InlineShapes.AddPicture FileName:=selfile
End With
Selection.Collapse Direction:=wdCollapseStart
Selection.InsertCaption Label:="Figure", _
Title:="(file:" & selfile & ")", Position:=wdCaptionPositionBelow
Selection.Hyperlinks.Add Address:=selfile, _
Anchor:=Selection.Range, TextToDisplay:="link"
Selection.InsertBefore Text:=vbLf
End If
End With
End Sub
Sub トリミング()
Application.Activate
SendKeys "%"
SendKeys "jp"
SendKeys "v"
SendKeys "c"
End Sub
Sub 吹き出し()
Dim shp As Shape
Application.Activate
Set shp = _
ActiveDocument _
.Shapes.AddShape( _
Type:=msoShapeRectangularCallout, _
Left:=100, Top:=100, _
Width:=100, Height:=100)
shp.Fill.ForeColor.RGB = RGB(255, 255, 200)
End Sub
Sub 強調枠線()
Dim shp As Shape
Application.Activate
Set shp = _
ActiveDocument _
.Shapes.AddShape( _
Type:=msoShapeRectangle, _
Left:=20, Top:=20, _
Width:=100, Height:=100)
shp.Fill.Visible = msoFalse
With shp.Line
.ForeColor.RGB = RGB(255, 0, 0)
.Weight = 6
.Style = msoLineSingle
.DashStyle = msoLineSysDot
End With
End Sub
実際にこのような動きをするものを作成したら、マクロ付きテンプレートとしてテンプレートのフォルダーに保存しておきます。
そうすると、このテンプレートを基にして作成した新規文書はすべてこのツールが使えるようになっています。
その新しい文書もマクロ付き文書で保存しないとこのツールがそれ以降使えないので、でも、入稿する時点でこのマクロが邪魔になる場合もあるので、最終段階で普通のワード文書として保存すると良いと思います。
コメント