出版社に原稿を入稿するときに使えそうな便利な画像挿入ツール

私自身、実際に出版社で書籍を出版したことはなく、皆さんご存知の通りプレジデント社の雑誌「President Next」のエクセル特集を監修させて頂いた経験しかないのですが、その時に出版社とやり取りしていて思ったのは、編集者の人の作業の多さでした。

本に載せる操作手順を私が原稿にして、操作画面をスクリーンショットしたファイルでお渡ししています。

それを出版社の方が整理してデザイナーが実際に乗るためのレイアウトをする組版という流れになります。

その時に、Word原稿に貼り付けた図がどのファイルかわからなくなるようでした。

よく考えてみれば同じような画面が連続して解説の画面になるのでよくよく見ないとどちらがどちらか分からなくなってしまうということはあると思います。

著者側としてもそれが万が一にもあべこべになってしまったらせっかく伝えたいメッセージも伝わらなくなってしまいます。

そこで、原稿を制作する段階から、どのスクリーンショットのファイルを使ったか文字でわかるようにしておくこと、また、Wordには図表番号という 画像に対する管理番号をつけて管理することができる機能もあるのでこれも活用すること、入れた画像がそのまま使わないで一部だけ切り抜く時にトリミングをしますがトリミングをするには何ステップ歌のクリックをしなければできないのでワンボタンでトリミングができるようにすること、強調するエリアを図示する図形と説明を吹き出しで描く図形もワンクリックで呼び出せること、というツールを考えた結果、次のようなツールを作成することができました。

今回はその中の実際の動きをするコードを紹介します。

私の場合は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

実際にこのような動きをするものを作成したら、マクロ付きテンプレートとしてテンプレートのフォルダーに保存しておきます。

そうすると、このテンプレートを基にして作成した新規文書はすべてこのツールが使えるようになっています。

その新しい文書もマクロ付き文書で保存しないとこのツールがそれ以降使えないので、でも、入稿する時点でこのマクロが邪魔になる場合もあるので、最終段階で普通のワード文書として保存すると良いと思います。

コメント

タイトルとURLをコピーしました