C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[7]: Excelの既定フォント設定


(過去ログ 133 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■78553 / inTopicNo.1)  Excelの既定フォント設定
  
□投稿者/ しろくま5 (12回)-(2016/01/25(Mon) 13:09:14)

分類:[VB.NET/VB2005 以降] 

VB.NETでExcel2013への出力プラグラムを作っております。

既定のフォントを変更していると印刷領域がズレるため
既定のフォントを一時的に変更して元に戻すという処理を
行っているのですが、小数点以下の指定がある場合に正常に
動作せず困っています。

ユーザーとしてはフォントサイズを10.5にしたいそうなのですが
Application.StandardFontSizeプロパティの値がLongのため
小数点の指定ができません。

エクセル上のオプションから設定すると10.5での登録が可能のため
なんとかしてほしいと言われております。

殆どエクセルに関しての質問になっており申し訳ありませんが、
おわかりになる方いらっしゃればご教示いただきたく思います。

よろしくお願いします。
引用返信 編集キー/
■78554 / inTopicNo.2)  Re[1]: Excelの既定フォント設定
□投稿者/ 魔界の仮面弁士 (632回)-(2016/01/25(Mon) 13:38:43)
No78553 (しろくま5 さん) に返信
> Application.StandardFontSizeプロパティの値がLongのため
> 小数点の指定ができません。

VBA で「Debug.Print TypeName(Application.StandardFontSize)」を
実行したところ、"Double" と表示されました。

また、VBA で「Application.StandardFontSize = 8.1」と実行した上で
Excel を再起動したところ、Excel オプションの [基本設定] タブの
[新しいブックの作成時] - [フォント サイズ(Z):] は "8.1" と記載されました。
引用返信 編集キー/
■78556 / inTopicNo.3)  Re[2]: Excelの既定フォント設定
□投稿者/ しろくま5 (13回)-(2016/01/25(Mon) 15:24:58)
2016/01/25(Mon) 15:50:49 編集(投稿者)

No78554 (魔界の仮面弁士 さん) に返信
> VBA で「Debug.Print TypeName(Application.StandardFontSize)」を
> 実行したところ、"Double" と表示されました。

返信ありがとうございます。

Doubleで取得できるのですが、既定のフォントサイズが
10.5になっているにもかかわらず2.0という数値が返ってきます
引用返信 編集キー/
■78557 / inTopicNo.4)  Re[3]: Excelの既定フォント設定
□投稿者/ 魔界の仮面弁士 (634回)-(2016/01/25(Mon) 16:34:25)
No78556 (しろくま5 さん) に返信
> Doubleで取得できるのですが、既定のフォントサイズが
> 10.5になっているにもかかわらず2.0という数値が返ってきます


・設定時には小数部を含められますが、戻り値は小数部が丸められて取得されるようです。

・StandardFontSize の設定が反映されるのは次回以降なので、
 書き換えた後は Application.Quit し、再度起動しなおす必要があります。
引用返信 編集キー/
■78558 / inTopicNo.5)  Re[4]: Excelの既定フォント設定
□投稿者/ しろくま5 (14回)-(2016/01/25(Mon) 16:45:21)
2016/01/25(Mon) 17:12:05 編集(投稿者)
2016/01/25(Mon) 16:45:54 編集(投稿者)

No78557 (魔界の仮面弁士 さん) に返信
> ■No78556 (しろくま5 さん) に返信
>>Doubleで取得できるのですが、既定のフォントサイズが
>>10.5になっているにもかかわらず2.0という数値が返ってきます
>
>
> ・設定時には小数部を含められますが、戻り値は小数部が丸められて取得されるようです。
>
> ・StandardFontSize の設定が反映されるのは次回以降なので、
>  書き換えた後は Application.Quit し、再度起動しなおす必要があります。

度々返信ありがとうございます。

失礼ですが、丸められて取得というのはどういうことでしょうか
この取得の際に元々の数値を取得、算出できる方法はないのでしょうか?

設定後はQuitし再起動しておりますので、そこは大丈夫です。

よろしくお願いします。
引用返信 編集キー/
■78561 / inTopicNo.6)  Re[5]: Excelの既定フォント設定
□投稿者/ 魔界の仮面弁士 (635回)-(2016/01/25(Mon) 18:04:13)
No78558 (しろくま5 さん) に返信
>> エクセル上のオプションから設定すると10.5での登録が可能のため
>> なんとかしてほしいと言われております。

手元の環境では、Excel の設定画面から 10.5 と指定した場合も、
StandardFontSize が 2 を返しました。


> 10.5で指定している値をVB.NET上で取得すると2.0(double)という数値となり

小数を指定した場合は、
 ・Excel オプション画面から指定
 ・Excel Macro から OPTIONS.GENERAL を指定
 ・Excel VBA から StandardFontSize を指定
 ・VBS から StandardFontSize を指定
 ・VB.NET からレイトバインドで StandardFontSize を指定
 ・VB.NET からアーリーバインドで StandardFontSize を指定
 ・VB.NET から CallByName で [DispId=925] を指定
のいずれの場合も、Double 型の 2 が返されました。

ただし、オプション画面には指定した小数値がセットされますし、
次回起動時のブックにも、小数サイズのフォントが設定されました。
(目視および RowHeight にて確認)
引用返信 編集キー/
■78562 / inTopicNo.7)  Re[6]: Excelの既定フォント設定
□投稿者/ 魔界の仮面弁士 (636回)-(2016/01/25(Mon) 18:28:34)
No78561 (魔界の仮面弁士) に追記
> >> エクセル上のオプションから設定すると10.5での登録が可能のため
> >> なんとかしてほしいと言われております。
>
> 手元の環境では、Excel の設定画面から 10.5 と指定した場合も、
> StandardFontSize が 2 を返しました。

Application.StandardFontSize プロパティで取得した場合だけではなく、
GET.WORKSPACE(57) マクロで取得した場合も、同じ結果になるようです。

x = Application.ExecuteExcel4Macro("GET.WORKSPACE(57)")


現在の設定値を知りたいのであれば、
 HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Excel\Options\Font
を読み取るほか無いかもしれません。

引用返信 編集キー/
■78569 / inTopicNo.8)  Re[7]: Excelの既定フォント設定
□投稿者/ しろくま5 (15回)-(2016/01/26(Tue) 09:59:55)
No78562 (魔界の仮面弁士 さん) に返信
> ■No78561 (魔界の仮面弁士) に追記
>>>> エクセル上のオプションから設定すると10.5での登録が可能のため
>>>> なんとかしてほしいと言われております。
>>
>>手元の環境では、Excel の設定画面から 10.5 と指定した場合も、
>>StandardFontSize が 2 を返しました。
>
> Application.StandardFontSize プロパティで取得した場合だけではなく、
> GET.WORKSPACE(57) マクロで取得した場合も、同じ結果になるようです。
>
> x = Application.ExecuteExcel4Macro("GET.WORKSPACE(57)")
>
>
> 現在の設定値を知りたいのであれば、
>  HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Excel\Options\Font
> を読み取るほか無いかもしれません。
>

何度もありがとうございます。

レジストリ参照すればできそうなのですね。一度やってみます。

ありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -