2010-07-14 5 views
0

Win XP/Excel 2003/VBA ....Excel CommandBars/Contrôles dans les langues locales

je le morceau de code suivant pour intercepter toutes les activités de pâte initiées par l'utilisateur (menu principal, menu contextuel et de contrôle -V clé) et l'envoyer à un Sub TrappedPaste()

.... 
Application.CommandBars("Edit").Controls("Paste").OnAction = "TrappedPaste" 
Application.CommandBars("Edit").Controls("Paste Special...").OnAction = "TrappedPaste" 
Application.CommandBars("Cell").Controls("Paste").OnAction = "TrappedPaste" 
Application.CommandBars("Cell").Controls("Paste Special...").OnAction = "TrappedPaste" 
Application.OnKey "^v", "TrappedPaste" 
.... 

Ce code fonctionne très bien. Le miracle s'est produit lors du déploiement mondial de la feuille, car "Modifier" n'est pas "Modifier" et "Coller" n'est pas "Coller" en allemand, français et toutes les autres langues entre (A) leut et (Z) apotec: - O

Q:

  1. est-il possible de parvenir à l'indépendance de la langue de l'interface utilisateur Excel, à savoir est il un aequivalent numérique au argument « Coller » qui est le même dans toutes les langues nationales?
  2. comment puis-je trouver ce numéro?
  3. est-ce que ctrl-V est toujours ctrl-v dans toutes les langues Windows locales?

Merci à l'avance pour toute aide

Sincères salutations MikeD

+1

Vous avez oublié le 'Shift + Ins' et le clic-droit. – GSerg

+0

@GSerg: merci pour l'indice sur Shift-Ins .... clic droit ouvre le menu contextuel qui est adressé par ... CommandBars ("Cell") .... – MikeD

Répondre

2

Chaque contrôle sur une barre d'outils a un ID qui peut être utilisé avec la fonction FindControl:

? application.CommandBars("Edit").FindControl(msoControlButton, 22).Caption 

22 est l'ID du bouton Paste. Autant que j'ai pu vérifier, ce numéro est le même dans différentes langues.
Vous pouvez donc les rechercher dans la version anglaise et les coder en dur.

+0

OK Je vais essayer ça; et qu'en est-il des noms de la barre de commande, ont-ils des ID similaires, parce que EDIT n'est pas EDIT dans d'autres langues aussi bien – MikeD

+0

ahhhh je vois, ils ont aussi un ID .... hack-hack – MikeD

+1

Non, modifier IS modifier dans d'autres langues. Parce que, contrairement aux contrôles, les barres de commandes ont '.Name' et' .NameLocal'. – GSerg

Questions connexes