[スポンサーリンク]

化学者のつぶやき

化学者のための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. ハロゲン移動させーテル!N-ヘテロアレーンのC–Hエーテル化
  3. 逆電子要請型DAでレポーター分子を導入する
  4. 生命が居住できる星の条件
  5. π-アリルイリジウムに新たな光を
  6. “click”の先に
  7. 深紫外光源の効率を高める新たな透明電極材料
  8. 電気ウナギに学ぶ:柔らかい電池の開発

注目情報

ピックアップ記事

  1. 国際化学五輪、日本代表に新高校3年生4人決定/化学グランプリ2017応募始まる
  2. 「超分子重合によるp-nヘテロ接合の構築」― インド国立学際科学技術研究所・Ajayaghosh研より
  3. 世界最小電圧の乾電池1本で光る青色有機EL
  4. アカデミックから民間企業への転職について考えてみる
  5. ポリエチレングリコール結合ルテニウムカルベン錯体
  6. ニュースタッフ追加
  7. ノーベル化学賞まとめ
  8. 並行人工膜透過性試験 parallel artificial membrane permeability assay
  9. ゴキブリをバイオ燃料電池、そしてセンサーに
  10. メラノーマ治療薬のリード化合物を発見

関連商品

ケムステYoutube

ケムステSlack

月別アーカイブ

2024年5月
 12345
6789101112
13141516171819
20212223242526
2728293031  

注目情報

最新記事

7th Compound Challengeが開催されます!【エントリー〆切:2026年03月02日】 集え、”腕に覚えあり”の合成化学者!!

メルク株式会社より全世界の合成化学者と競い合うイベント、7th Compound Challenge…

乙卯研究所【急募】 有機合成化学分野(研究テーマは自由)の研究員募集

乙卯研究所とは乙卯研究所は、1915年の設立以来、広く薬学の研究を行うことを主要事業とし、その研…

大森 建 Ken OHMORI

大森 建(おおもり けん, 1969年 02月 12日–)は、日本の有機合成化学者。東京科学大学(I…

西川俊夫 Toshio NISHIKAWA

西川俊夫(にしかわ としお、1962年6月1日-)は、日本の有機化学者である。名古屋大学大学院生命農…

市川聡 Satoshi ICHIKAWA

市川 聡(Satoshi Ichikawa, 1971年9月28日-)は、日本の有機化学者・創薬化学…

非侵襲で使えるpH計で水溶液中のpHを測ってみた!

今回は、知っているようで知らない、なんとなく分かっているようで実は測定が難しい pH計(pHセンサー…

有馬温泉で鉄イオン水溶液について学んできた【化学者が行く温泉巡りの旅】

有馬温泉の金泉は、塩化物濃度と鉄濃度が日本の温泉の中で最も高い温泉で、黄褐色を呈する温泉です。この記…

HPLCをPATツールに変換!オンラインHPLCシステム:DirectInject-LC

これまでの自動サンプリング技術多くの製薬・化学メーカーはその生産性向上のため、有…

MEDCHEM NEWS 34-4 号「新しいモダリティとして注目を浴びる分解創薬」

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

圧力に依存して還元反応が進行!~シクロファン構造を活用した新機能~

第686回のスポットライトリサーチは、北海道大学大学院理学研究院化学部門 有機化学第一研究室(鈴木孝…

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

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

PAGE TOP