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] セルの値を転記する方法

エクセルでマクロを作る際に、もっとも基本となるのは、「セルの値を転記する」という処理だと思います。 セルの値を転記する方法は、いくつか存在します。 クリップボード経由でコピーする。 値を直接転記する。 …

[Excel][VBA] 行列入れ替えを伴う値の転記

以前書いたように、エクセルで値を転記する場合は、クリップボードを経由せずにValueプロパティを使う方法を勧めている。 しかし、クリップボード経由だと簡単なのに、経由しない場合だと面倒なものがある。 …

[Excel][VBA] ブックの手動計算とValue(xlRangeValueXMLSpreadsheet)の危険な関係

VBAを使ってExcelで複雑なツールを作ろうとすると、いろいろと細かい部分でつまずくものだ。 今回は、ブックの計算を手動にしていても、特定の条件下で自動に戻ってしまうという現象に遭遇した。 Valu …

[Excel][VBA] シートを新規ワークブックにコピーする方法

既存のシートからワークシートを新規シートにコピーする。 手動の場合は、新規ワークブックを選択するだけでよい。 VBAでは以下のメソッドを用いる。 コード例 [crayon-5c920c5acdba14 …

[Excel][VBA] 名前付きセル範囲の参照

VBAで名前付きセル範囲を参照する方法は複数ある。 よく混乱するので、ちょっと整理しておく。 コード例

それぞれの方法の特徴 Rang …