[スポンサーリンク]

化学者のつぶやき

化学者のための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. 鉄錯体による触媒的窒素固定のおはなし-2
  3. 光学活性有機ホウ素化合物のカップリング反応
  4. 【速報】2022年ノーベル化学賞は「クリックケミストリーと生体直…
  5. 【技術者・事業担当者向け】 マイクロ波による化学プロセス革新 〜…
  6. アメリカ大学院留学:卒業後の進路とインダストリー就活(1)
  7. 軽量・透明・断熱!エアロゲル(aerogel)を身近に
  8. 有機合成化学協会誌2020年6月号:Chaxine 類・前周期遷…

コメント、感想はこちらへ

注目情報

ピックアップ記事

  1. 不斉ディールス・アルダー反応 Asymmetric Diels-Alder Reaction
  2. JEOL RESONANCE「UltraCOOL プローブ」: 極低温で感度MAX! ①
  3. ハンチュ エステルを用いる水素移動還元 Transfer Hydrogenation with Hantzsch Ester
  4. 有機合成化学協会誌2021年3月号:水素抽出型化学変換・環骨格一挙構築・新規アルコキシメチル基・π拡張非交互炭化水素・フローマイクロリアクター
  5. スルホキシドの立体化学で1,4-ジカルボニル骨格合成を制す
  6. トリメチルロック trimethyl lock
  7. ゲームを研究に応用? タンパク質の構造計算ゲーム「Foldit」
  8. プロトン共役電子移動を用いた半導体キャリア密度の精密制御
  9. 第97回日本化学会春季年会 付設展示会ケムステキャンペーン Part I
  10. フルオラス向山試薬 (Fluorous Mukaiyama reagent)

関連商品

ケムステYoutube

ケムステSlack

月別アーカイブ

2024年5月
 12345
6789101112
13141516171819
20212223242526
2728293031  

注目情報

最新記事

ナノ学会 第22回大会 付設展示会ケムステキャンペーン

ナノ学会の第22回大会が東北大学青葉山新キャンパスにて開催されます。協賛団体であるACS(ア…

【酵素模倣】酸素ガスを用いた MOF 内での高スピン鉄(IV)オキソの発生

Long らは酸素分子を酸化剤に用いて酵素を模倣した反応活性種を金属-有機構造体中に発生させ、C-H…

【書評】奇跡の薬 16 の物語 ペニシリンからリアップ、バイアグラ、新型コロナワクチンまで

ペニシリンはたまたま混入したアオカビから発見された──だけではない.薬の…

MEDCHEM NEWS 33-2 号「2022年度医薬化学部会賞」

日本薬学会 医薬化学部会の部会誌 MEDCHEM NEWS より、新たにオープン…

マテリアルズ・インフォマティクスにおける分子生成の基礎と応用

開催日:2024/05/22 申込みはこちら■開催概要「分子生成」という技術は様々な問題…

AlphaFold3の登場!!再びブレイクスルーとなりうるのか~実際にβ版を使用してみた~

2021年にタンパク質の立体構造予測ツールであるAlphaFold2 (AF2) が登場し、様々な分…

【5月開催】 【第二期 マツモトファインケミカル技術セミナー開催】 有機金属化合物 オルガチックスによる「密着性向上効果の発現(プライマー)」

■セミナー概要当社ではチタン、ジルコニウム、アルミニウム、ケイ素等の有機金属化合物を“オルガチッ…

マテリアルズ・インフォマティクスにおける回帰手法の基礎

開催日:2024/05/15 申込みはこちら■開催概要マテリアルズ・インフォマティクスを…

分子は基板表面で「寝返り」をうつ!「一時停止」蒸着法で自発分極の制御自在

第613回のスポットライトリサーチは、千葉大学 石井久夫研究室の大原 正裕(おおはら まさひろ)さん…

GoodNotesに化学構造が書きやすいノートが新登場!その使用感はいかに?

みなさんは現在どのようなもので授業ノートを取っていますでしょうか。私が学生だったときには電子…

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

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

PAGE TOP