Square Beat Engine

Blog for variety of things…

MS-Office

[Excel][PPT][VBA] エクセルとパワーポイントの改行コードの違い

投稿日:

VBAで、エクセルからパワーポイントに改行を含む文字列をコピーしようとしたとき、若干つまずいたのでメモ!

この記事で解決できる課題

パワーポイントの箇条書きでは、Enterで次の段落に移動し、新しい箇条が生成されます。
Shift+Enterは、段落を変えずに改行するので、同じ箇条の中で改行できます。

VBAを使ってエクセルからパワーポイントに値をコピーするときに、この「段落を変えずに改行」を正しく扱うにはコツが必要です。

エクセルとパワーポイントの改行コード

ソフトウェア 改行操作 文字コード 改行コード
エクセル Alt+Enter 10 LF
PPT Enter 13 CR
Shift+Enter 11 VT

VTっていうのは垂直タブ(Virtual Tab)のこと。
こんなの初めて知ったわ。

エクセルからパワポへの転記まとめ

普通に改行するとき

上記の表ではパワポでは文字コード13となっているが、10を指定しても普通の改行として扱われる模様。
したがって、エクセルのセル内で普通にAlt+Enterすればよい。
安全を期すならCHAR(13)がよいと思う。
念を入れてCHAR(13)&CHAR(10)としてCRFLにすると、2つ改行が入る。

段落を変えずに改行するとき

エクセルのセル内でCHAR(11)を使ってVTを表現する。

関数(メモ)

ソフトウェア コード→文字 文字→コード
エクセル CHAR() CODE()
VBA Chr() Asc()

その他の細かいこと

  • パワポのVTは、VBA内でAsc()を実行して調査した。
  • エクセルで=CHAR(11)とすると、見慣れない妙なマークになる。しかしこれを別のセルに貼り付けると単なる半角スペース(文字コード32)になってしまい、再利用はできない。
  • そのため、エクセル内でVTを使いたいときは="1行目の文字列"&CHAR(11)&"2行目の文字列"のようにする必要がある。

以上!

-MS-Office

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

[Excel][VBA] 罫線のコピー

あるセル範囲の罫線を、別のセル範囲にコピーするメソッドを紹介する。 概要 VBAには、あるセル範囲から別のセル範囲へ罫線をコピーするようなコマンドが存在しない。 クリップボード経由でコピーすれば簡単だ …

[PowerPoint][VBA] パワーポイントのテキストボックスへ値をコピーする方法

パワーポイントのテキストボックスへ値をコピーする方法。 単に値を記入するだけではなく、数値がプラス・マイナスの場合に応じて色をつける処理を挿入してある。 コード [crayon-5c443ff25a8 …

[PowerPoint][VBA] スライドの追加

パワーポイントのスライドを作成する方法。 メソッド 単にスライドを挿入する場合は、PPT.Slides.Addでよい。 今回はテンプレートファイルからスライドをコピーする形を取ったため、いくつか工夫が …

[VBA] Excel/PowerPointのグラフ上の全てのラベルを表示させるマクロ

MS Officeでは、グラフのことを主にチャート(Chart)と呼ぶので、以下ではチャートと呼ぶことにする。 さて、Excel2007のチャートにラベルを表示する際、複数の系統があると、1つずつ手作 …

[Excel][VBA] リストボックスがクリアされてしまう問題

ActiveXコントロール(OLEObject)のリストボックスは、セルに何かを書き込んだりすると、選択状況がクリアされてしまう。 正確には、自動計算をOFFにしておけばクリアされないのだが、通常は自 …