[スポンサーリンク]

化学者のつぶやき

化学者のためのWordマクロ -Supporting Informationの作成作業効率化-

[スポンサーリンク]

「化合物データの帰属チェックリスト、見やすいんですが、もっと使いやすくならないですか」

ある日、ラボメンバーにこのようなことを言われました。もともと、スペクトルを帰属して、帰属表をピーク毎に改行してWordファイルにまとめるという方法を取っていました(下図)。ですが、色々な理由で、結局のところ不便していました。Excelでチェックリストを作るとまとめやすく見やすいですが、Wordフォーマットに落とし込むのが大変手間でした。ということで、Excelで見やすくまとめた帰属チェックリストを一発で論文フォーマットに変換できるマクロを書きましたので、ご紹介します。

Word式帰属チェックリスト

注)本記事の内容は、プログラミング専門外の有機化学者ができる範囲で作成したマクロになりますので、不完全な部分があることをご了承ください。

 

目標:Excelでまとめた帰属チェックリストをWord論文フォーマットに一括置換する

天然物やその合成中間体など複雑な化合物のNMRによる帰属・構造決定は慎重行う必要があります。そのために、以下のようなExcel帰属チェックリストが役に立ちます。
人がリストを転記すると、人為的ミスが生じ、結果的に非効率になってしまいますので自動化が必須ですが、こちらのチェックリストをWord書式に落とし込むためには少々複雑なプロセスが必要でした。
※簡単な化合物の場合、最初からWordに論文フォーマットで帰属を書いた方が速いです。

そこでまず、Excel上で帰属まとめ用シートとは別にコピー用シートを作ることにしました。Excel上で作成したJ値やプロトン数などを書き込んだ情報の中から必要な論文に使うデータを順に並ぶように抽出します。そして、赤枠内をコピーしてWordにマクロを使って貼り付けます。

 

鍵となるのは「検索」と「置換」を指示するコード

Supporting Informationなど、繰り返し同じ記載が多数出てくる文書のフォーマットを統一するためには、検索と置換が有効です。いつもは検索と置換ウインドウを開いて設定していますが、VBAマクロで書くと以下のようになります。

検索して置換

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = “検索する文字列
.Replacement.Text = “置換する文字列
.Forward = True (#カーソルから前方に向かって検索)
        .Wrap = wdFindContinue (#検索置換後にそのまま繰り返すかどうか)
        .Format = True (#フォーマットを区別)
        .MatchCase = True (#大文字小文字を区別)
        .MatchWholeWord = True (#文字列の完全一致を区別)
        .MatchByte = True (#全角と半角を区別)
        .MatchAllWordForms = True (#英単語の異なる活用形を区別)
        .MatchSoundsLike = True (#似た単語・あいまい検索)
        .MatchWildcards = True (#ワイルドカードを使用する)
        .MatchFuzzy = True (#ひらがなとカタカナ、旧漢字と常用漢字の区別をなくす)
    End With
Selection.Find.Execute Replace:=wdReplaceAll

検索のみで、置換しない場合、置換する文字列を検索する文字列と同じにするか”\1″とし、最後の行のSelection.Find.Execute Replace:=wdReplaceAllのReplace以降を削除します。

選択箇所の数字だけを上付きor下付きにする

化学式の「数字」のみを下付きにするといった操作は、「ワイルドカード」という機能を使用することで実現できます。選択した箇所の半角数字のみを下付きにするコードは以下。上付きにする場合はSubscriptをSuperscriptに変更すればOK

【Word VBA】選択範囲内の半角数字を全て下付き文字にするWordマクロ
ワイルドカードの使い方

If Selection.Type = wdSelectionIP Then
  Selection.Expand Unit:=wdWord
End If

 With Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = “([0-9]{1,})”
.Replacement.Text = “\1”
.Replacement.Font.Subscript = True
  .Forward = True
  .Wrap = wdFindStop
.Format = True
  .MatchCase = False
  .MatchWholeWord = False
  .MatchByte = False
  .MatchAllWordForms = False
  .MatchSoundsLike = False
  .MatchFuzzy = False
  .MatchWildcards = True
  .Execute Replace:=wdReplaceAll
End With

ちなみにこのワイルドカード検索、他にも様々なことに活用できます。例えばわかりやすい例で言えば、Mr. Ms. Mrs. Dr.などのPrefixを一括検索したい場合、ワイルドカードを有効にして、検索する文字列を([MD][rs]{1,2})とすればよいのです。1文字目はMまたはD、2文字目はr, s, rr, ss, sr, rsのいずれかという意味になります。このように、規則的な接頭語などを検索する場合はワイルドカード検索が有効です。それぞれ研究分野によって需要は異なると思いますが、アレンジして使ってみてください。

マクロの記録を活用

マクロ化したい操作のコードが不明な場合、「マクロの記録」を使用し、マクロ化したい操作を実行して記録を停止します。その後Visual Basicを開き、保存したマクロのコードを確認します。ほとんどの操作はこれによりマクロ化可能です。プロのエンジニアからすると非推奨の方法かもしれませんが、必要なコードはすべて入っているのでエラーの確率が減ります。エラーが起きて困る場合はマクロの記録を試しましょう。

マクロの記録 Record Macro

 

Visual Basicでマクロを編集する -記号に注意-

Visula Basicでマクロを組合せてやりたいことを実現しましょう。今回は最初にお見せしたExcelのセルをコピーしてWordに貼り付けてから、下図のような雰囲気の操作を施せば論文フォーマットに変換できます。それぞれのラボの記述フォーマットがあると思いますので、細かい部分はラボごとに編集していただければと思います。
記号に注意というのは、enダッシュ「–」やデルタ「δ」のような記号はそのままマクロに入れても文字化けしてしまうということです。
これには、ChrWというユニコード関数を使用します。例えば、enダッシュ = ChrW(8211) となります。

 

最終的に出来上がったマクロの威力

最終的に出来上がったマクロを使って、Excelのコピー用シートの内容をコピーしてWordに貼り付けてみた様子がこちら。これ、特に何も編集カットなどしていません。マクロが動いている間カーソルがチョロチョロと変わっている様子が見て取れると思います。マクロを使って貼り付けた際に思い通りの結果が得られなかった場合、Word上でCtrl + Z(戻る)を繰り返し、おかしな動作をしたところまで戻ることで、どのコードを修正すればよいのかを把握することができます。(途中でWordを呼び出す時にさり気なく使っているのはAlfred 5というmac神アプリ。これもリアルタイム。)
(↓↓少々重いので表示に時間がかかる場合があります↓↓)

 

おわりに

最後まで読んでいただきありがとうございました。
今回作成したマクロとExcelファイルはこちらに格納いたしましたので、自由に改変して使ってください。
ちなみに、ExceltoWordというマクロが上記の一括変換コピペマクロですが、JEOL DeltaやMNovaなどで出力した1Hや13Cのピークリスト(J coupling analysis)を横表示から縦表示に変換するマクロも入っています(Delta to word 1Hと13C)。これらも活用するとさらに作業効率化できます。

 

関連記事

電子実験ノートSignals Notebookを紹介します ①
電子実験ノートSignals Notebookを紹介します ②
電子実験ノートSignals Notebookを紹介します ③
IASO R7の試薬データベースを構造式検索できるようにしてみた
電子実験ノートSignals Notebookを紹介します ④

Macy

投稿者の記事一覧

有機合成を専門とする教員。将来取り組む研究分野を探し求める「なんでも屋」。若いうちに色々なケミストリーに触れようと邁進中。

関連記事

  1. 先端事例から深掘りする、マテリアルズ・インフォマティクスと計算科…
  2. 有機合成化学協会誌2017年11月号:オープンアクセス・英文号!…
  3. 論文執筆&出版を学ぶポータルサイト
  4. サリンを検出可能な有機化合物
  5. 実験ノートの字について
  6. Nature主催の動画コンペ「Science in Shorts…
  7. 有機合成化学協会誌2022年4月号:硫黄置換基・デヒドロアミノ酸…
  8. 有機合成化学協会誌2020年10月号:ハロゲンダンス・Cpルテニ…

注目情報

ピックアップ記事

  1. 第168回―「化学結晶学から化学結合を理解する」Guru Row教授
  2. アトムエコノミー Atom Economy
  3. 鉄触媒を使い分けて二重結合の位置を自由に動かそう
  4. 宮田 完二郎 Miyata Kanjiro
  5. 佐藤 伸一 Shinichi Sato
  6. スズアセタールを用いる選択的変換 Selective Transformation with Tin Acetal
  7. トーマス・トーレス Tomas Torres
  8. 研究開発DXとマテリアルズ・インフォマティクスを繋ぐmiHub
  9. ジアリールエテン縮環二量体の二閉環体の合成に成功
  10. 布施 新一郎 Shinichiro Fuse

関連商品

ケムステYoutube

ケムステSlack

月別アーカイブ

2024年5月
 12345
6789101112
13141516171819
20212223242526
2728293031  

注目情報

最新記事

アンモニウム構造によりラジカル種の発生位置を完全に制御!

第710回のスポットライトリサーチは、関西学院大学理工学研究科 村上研究室の榊原 陽太(さかきばら …

化学つれづれ草【ある研究者の回想】

概要物理化学者で量子機能材料を専門とする著者によるエッセイ集.化学者としての研究,教育,人生…

第60回有機反応若手の会

開催概要有機反応若手の会は、有機化学分野で研究を行う全国の大学院生を中心とした若手研究者が集い、…

ノーベル賞受賞者と語り合う5日間!「第18回HOPEミーティング」参加者募集!

申し込みはこちら概要主催:独立行政法人 日本学術振興会(JSPS)開催地:神奈川…

光触媒による高効率なCO2還元の実現―まさかの光を弱く当てることが重要だった―

第709回のスポットライトリサーチは、東京科学大学 理学院(前田研究室)博士後期課程2年の仲田竜一 …

「π-πスタッキング」という言葉が生む誤解【芳香環の相互作用を見直す: 前編】

芳香環が平行に並んで近接しているとき、その構造を「π–π スタッキング」と表されることがよくあります…

一重項酸素によるC(sp2)−P結合切断を用いた長波長光によるリン化合物のアンケージング

第 708 回のスポットライトリサーチは、同志社女子大学 薬学部 医療薬学科 5…

マテリアルズ・インフォマティクスにおける画像解析の活用ガイド

開催概要材料開発において、電子顕微鏡やX線トモグラフィーを用いて材料の微細構造を観察するために画…

世界初のPROTAC医薬、ついに承認 ―「タンパク質を阻害する」から「分解する」時代へ

2026年5月、創薬化学の歴史に残る大きな出来事が起きました。米国 FDA は、…

有機蛍光とは異なる新しい有機りん光の分子設計指針の発見

第707回のスポットライトリサーチは、電気通信大学 情報理工学研究科(牧昌次郎研究室)の林希久也 助…

実験器具・用品を試してみたシリーズ

スポットライトリサーチムービー

PAGE TOP