- 締切済み
Windows api (Ext text out) に ついて
仕事でエクセルをバリバリ(10年以上)使用(あらゆる文字列操作関数)しています。VBAでマクロを組んで得意先に提出する請求書も発行しています。 マクロ内でExtTextOut関数を使用してセル内の数値を表示する方法を教えてください。いまいち理解(記述方法)しきれません。 具体的に申しますとa1セルに数値1~9までの数値を入れると a2セルに入力されている数値の字間がa1セルに入力した 数値 ミリ単位(おおよそ)で表示される様にしたいのです。 表示例 000 -> 0 0 0 ExtTextOut関数と言ったのは私が調べたまでで憶測に過ぎません。 空白挿入とか文字列分解とかポイント変更とか低レベルな回答は望んでいませんのでよろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- khazad-lefty
- ベストアンサー率44% (296/668)
うーん。そういうことするためにはある程度低レベルなプログラミングにたいする知識がないと難しいです。 VBAというのは「Excelの機能を利用する」ものなわけで、それ以上のことを指定してExcelに対して描画を行うのであればExcelが内部で行っている処理(文字を画面に表示するなど)は使えないので、それを自力でやらなきゃいけないわけです。 最低限、ここで書いてあることが理解できないと無理でしょうね。 http://www.geocities.co.jp/SiliconValley-Cupertino/5873/special/2002_8/index.html あと、もっと言うと > a2セルに入力されている数値の字間がa1セルに入力した > 数値 ミリ単位(おおよそ)で表示される様にしたいのです。 これがa2セルの表示形式を変更するというのであれば、 Excel単体でそういう書式設定ができないなら不可能です。 (Excel自体の描画処理を改造しないとそういう処理はできない) できるのは、「a2セルに入力されている数値を字間調節して任意の場所に画面表示する」で、a2セルの表示自体は変わりません。 それこそOCRフォントなどの文字幅が計算できるフォントを利用して、 文字列操作と(文字単位の)フォントサイズ変更を用いて行い、それをa3セルに表示させるのがまだ現実的だと思います。
お礼
全然質問に対しての回答になっていないのですが、 とりあえず、ありがとうございました。