[スポンサーリンク]

化学者のつぶやき

化学者のための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. 【速報】2015年ノーベル生理学・医学賞ー医薬品につながる天然物…
  5. 可視光レドックス触媒と有機蓄光の融合 〜大気安定かつ高性能な有機…
  6. Wei-Yu Lin教授の講演を聴講してみた
  7. 有機合成化学協会誌2021年12月号:人工核酸・Post-com…
  8. Dead Endを回避せよ!「全合成・極限からの一手」②

注目情報

ピックアップ記事

  1. アレーン三兄弟をキラルな軸でつなぐ
  2. N-カルバモイル化-脱アルキル化 N-carbamoylation-dealkylation
  3. 第33回ケムステVシンポ「研究DXとラボラトリーオートメーション」を開催します!
  4. 三菱ケミカル「レイヨン」買収へ
  5. 有機機能性色素におけるマテリアルズ・インフォマティクスの活用とは?
  6. 続・日本発化学ジャーナルの行く末は?
  7. シリルエノールエーテルのβ位を選択的に官能基化する
  8. 代表的有機半導体の単結晶化に成功 東北大グループ
  9. 「化学の匠たち〜情熱と挑戦〜」(日本化学会春季年会市民公開講座)
  10. キノコから見いだされた新規生物活性物質「ヒトヨポディンA」

関連商品

ケムステYoutube

ケムステSlack

月別アーカイブ

2024年5月
 12345
6789101112
13141516171819
20212223242526
2728293031  

注目情報

最新記事

アクリルアミド類のanti-Michael型付加反応の開発ーPd触媒による反応中間体の安定性が鍵―

第622回のスポットライトリサーチは、東京理科大学大学院理学研究科(松田研究室)修士2年の茂呂 諒太…

エントロピーを表す記号はなぜSなのか

Tshozoです。エントロピーの後日談が8年経っても一向に進んでないのは私が熱力学に向いてないことの…

AI解析プラットフォーム Multi-Sigmaとは?

Multi-Sigmaは少ないデータからAIによる予測、要因分析、最適化まで解析可能なプラットフォー…

【11/20~22】第41回メディシナルケミストリーシンポジウム@京都

概要メディシナルケミストリーシンポジウムは、日本の創薬力の向上或いは関連研究分野…

有機電解合成のはなし ~アンモニア常温常圧合成のキー技術~

(出典:燃料アンモニアサプライチェーンの構築 | NEDO グリーンイノベーション基金)Ts…

光触媒でエステルを多電子還元する

第621回のスポットライトリサーチは、分子科学研究所 生命・錯体分子科学研究領域(魚住グループ)にて…

ケムステSlackが開設5周年を迎えました!

日本初の化学専用オープンコミュニティとして発足した「ケムステSlack」が、めで…

人事・DX推進のご担当者の方へ〜研究開発でDXを進めるには

開催日:2024/07/24 申込みはこちら■開催概要新たな技術が生まれ続けるVUCAな…

酵素を照らす新たな光!アミノ酸の酸化的クロスカップリング

酵素と可視光レドックス触媒を協働させる、アミノ酸の酸化的クロスカップリング反応が開発された。多様な非…

二元貴金属酸化物触媒によるC–H活性化: 分子状酸素を酸化剤とするアレーンとカルボン酸の酸化的カップリング

第620回のスポットライトリサーチは、横浜国立大学大学院工学研究院(本倉研究室)の長谷川 慎吾 助教…

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

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

PAGE TOP