Microsoft 製品に組み込まれている Visual Basic の実装。
他の言語環境もってませんから、試してませんが、そもそも、FormulaLocal使ってることがまずいのでは
FormulaでやればどのロケールでもSumで動きませんか?
ピントが外れてたら無視してください。
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
いつもお世話になっております。
エクセルの関数をVBAより設定するときの質問です。
下記のマクロをスペイン語環境で実行したらエラーになりました。
マクロ①:Cells(1, 1).FormulaLocal = "=SUM(R2C:R[5]C)"
エラーメッセージ:Erro de definição de aplicativo ou de definição de objeto
日本語環境での「SUM」関数はスペイン語では「SUMA」と入力するそうなので、
エラー原因は文字列で"SUM"と記述しているところにあると考えていましたが、
日本語環境にて下記のマクロを実行したところ計算式設定セルに 「#NAME?」 と
表示されるだけでマクロ実行時エラーにはなりませんでした。
マクロ②:Cells(1, 1).FormulaLocal = "=aaaaaaaaaaaaaa(R2C:R[5]C)"
話をややこしくしてしまって申し訳ありませんが、マクロ①の例のように
日本語環境にて正しく実行できるマクロが、スペイン語環境だと実行時エラーが
発生してしまう状況についてどなたか情報をお持ちの方がおりましたら、是非、
ご教授お願い致します。
※この質問は下記フォーラムより移動してきました。
[Windows クライアント開発 フォーラム]
Microsoft 製品に組み込まれている Visual Basic の実装。
ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。
質問作成者が受け入れた回答
他の言語環境もってませんから、試してませんが、そもそも、FormulaLocal使ってることがまずいのでは
FormulaでやればどのロケールでもSumで動きませんか?
ピントが外れてたら無視してください。
y sakuda さん
!!!!!!!!!!!!!!!!!! ビ、ビンゴですっ! \T.T/
と、いっても、「SUM」と「SUMA」の問題とは少しズレますが。。。
私も他の言語環境で簡単に試せる状況ではないので、自分のPCをコントロールパネルの
「地域と言語のオプション」でポルトガル(ポルトガル語)に設定し次のことを試しました。
セルに「=IF(A1=B1, 0, 1)」を入力したところエラー(入力した数式は正しくありません)。
よくよく見ると、「IF」関数のインテリジェンス(?)のデリミタ(?)がセミコロン「;」になっているので
セルに「=IF(A1=B1; 0; 1)」を入力すると正常に動作しました。
以上のことを踏まえて下記のマクロを実行しました。
Cells(1, 3).Formula = "=IF(A1=B1, 0, 1)" ' 正常
Cells(1, 3).Formula = "=IF(A1=B1; 0; 1)" ' エラー
Cells(1, 3).FormulaLocal = "=IF(A1=B1, 0, 1)" ' エラー
Cells(1, 3).FormulaLocal = "=IF(A1=B1; 0; 1)" ' 正常
結果、y sakudaさんのおっしゃる通り、「Formula」と「FormulaLocal」の仕様を
理解せずに使用していたことが問題でした。
至極的確なご指摘、ありがとうございました。
※「SUM」と「SUMA」の問題も「Formula」プロパティを使用することで解決だと思われますが、
ただいま他言語環境にて調査中です。
追記:「地域と言語のオプション」をポルトガルにしても「SUM」は「SUM」のままでした。
これはExcel自体再インストールしないと変更できないんですかねぇ
こんにちは。
LC(ロケール)IDでしたらLanguageSettingsオブジェクトLanguageIDプロパティで
取得することができるかと思います。
日本語環境ですと「1041」ですが、スペイン語環境ですと「1034」が返ってくるはずです。
Public Sub Sample()
With Application.LanguageSettings
Debug.Print .LanguageID(msoLanguageIDInstall), .LanguageID(msoLanguageIDUI)
End With
End Sub
「ロケール ID (LCID) の一覧」
きぬあさ さん
返信ありがとうございます。
>> たしかに Listado de funciones de hoja de cálculo (alfabético) - Excel - Microsoft Office を
>> 見ると「SUMA」になっていますね。
そうですね。ちなみにドイツ語環境では「SUMME」らしいです。
>> 「SUMA」がスペイン語版にしか無いのであれば、
>> 「.FormulaLocal = "=SUMA(...)"」ではないでしょうか。
はい、私もそう思います。
説明不足で申し訳ありませんが、私の周りにスペイン語環境は無く、
簡単にテストすることができない状況にあります。また、作成した
Excel(マクロ)は多言語環境にて実行されます。
この場合、下記のような方法でしか解決できませんでしょうか?
また、「実行言語環境」を取得することは可能なのでしょうか?
Select Case 「実行言語環境」
Case [日本語]
「.FormulaLocal = "=SUM(...)"」
Case [スペイン語]
「.FormulaLocal = "=SUMA(...)"」
Case [ドイツ語]
「.FormulaLocal = "=SUMME(...)"」
End Select
こんにちは。
たしかに Listado de funciones de hoja de cálculo (alfabético) - Excel - Microsoft Office を
見ると「SUMA」になっていますね。
私自身スペイン語環境のExcelは使用したことがないのですが、「SUMA」がスペイン語版にしか
無いのであれば、「.FormulaLocal = "=SUMA(...)"」ではないでしょうか。