2017-06-02 34 views
4

私はチェックボックスに対処する必要があるExcelファイルがあります。チェックボックスの名前は、フランス語で自動的に定義されます(インストールがフランス語であるため)。たとえば、「チェックボックス100」の代わりに「Caseàcocher 100」と入力します。Excel VBAチェックボックス英語対フランス語

しかし、兄弟会社がこのExcelファイルを使用すると、インストールが英語であるためクラッシュします。

英語とフランス語で次の作業を行う方法はありますか?

ActiveSheet.CheckBoxes("Case à cocher 488").Interior.Color = RGB(255, 255, 255) 
ActiveSheet.CheckBoxes("Case à cocher 383").Interior.Color = RGB(255, 255, 255) 
ActiveSheet.CheckBoxes("Case à cocher 467").Interior.Color = RGB(255, 255, 255) 
ActiveSheet.CheckBoxes("Case à cocher 461").Interior.Color = RGB(255, 255, 255) 
ActiveSheet.CheckBoxes("Case à cocher 460").Interior.Color = RGB(255, 255, 255) 
ActiveSheet.CheckBoxes("Case à cocher 459").Interior.Color = RGB(255, 255, 255) 
ActiveSheet.CheckBoxes("Case à cocher 458").Interior.Color = RGB(255, 255, 255) 
ActiveSheet.CheckBoxes("Case à cocher 8").Interior.Color = RGB(255, 255, 255) 

チェックボックスの名前を変更する方法が見つからないようです。

+0

を試してみてください。一般的に、あなたのコードが他の言語で確実に実行されるように、英語以外の言語固有のコードは使用しないでください。私はあなたのケースではあなたのコードの中にあるかもしれないと思う。これを避けるには、これらのボックスに名前を付けるためのワークシートを使用します。名前を含むセルへの参照を使用します。言語設定によっては、別の列を使用します。 – ksauter

+0

これはたくさんの繰り返しコードのようです。できる場合は、[ここにあるもの](http://www.excel-easy.com/vba)のようなものを使用して、ループを実装し、アクティブなシートの各チェックボックスに同じことを実行することを検討する必要があります/examples/loopthroughthroughcontrols.html)。これには、個々のチェックボックスの名前を知る必要がないという利点があります。しかし、特定のものだけを扱う必要があるかどうかはわかりません...でも、それを処理するサブルーチンを定義することを検討したいと思います。 –

+0

@ChristopherKyleHortonはい私はループを知っています。これは、ループについての手がかりがないエンジニアによって構築されたコードです。彼らはそれが私がそれを修正することを担当しているので、それが盗んだことを認識した – Alex

答えて

7

地域の設定を確認し、どちらを使用するかを決定します。

は、これは非常に共通の問題である。この

Sub Sample() 
    Dim CBNAME As String 

    Select Case Application.International(XlApplicationInternational.xlCountryCode) 
     Case 1 '<~~ English 
      CBNAME = "CheckBox" 
     Case 33 '<~~ French 
      CBNAME = "Case à cocher" 
    End Select 

    ActiveSheet.CheckBoxes(CBNAME & " 488").Interior.Color = RGB(255, 255, 255) 
End Sub 
+0

素晴らしい作品! – Alex

関連する問題