입력하는 동안 단어 안의 'ae'를 'ä'로 바꿉니다.


1

이것을 할 수 있습니까? 표준 자동 고침은 전체 단어에서만 작동한다고 생각합니다 ...


VBA 스크립트를 통해 수행되는 경우 주제에서 벗어나지 않습니다.

키보드 레이아웃을 스웨덴어 / 독일어 / SomeOtherLanguageWithUmlauts로 바꾸는 것은 어떻습니까? :-)

1
1. 이것은 주제가 아닙니다. 2. 나는이 내장을위한 무언가가 있다고 생각하지 않습니다. 3. 검색 / 바꾸기 ae-> ä, oe-> ö, ue-> ü의 문제입니다. 나는 이것을 위해 매크로를 작성할 수도 있다고 생각합니다. 4. 대체하고 싶지 않은 "Aerodynamik"와 같은 단어에는 좋지 않습니다 ...
schnaader

1
@ shnaader : ExcelVBA에서 특정 작업 (예 : 커서가 셀을 떠나는 경우)에서 매크로를 실행할 수 있다는 것을 알고 있습니다. 어쩌면 여기에 적용 할 수있는 비슷한 단어가있을 수 있습니다. 나의 텍스트는 Aerodynamik와 같은 '거짓 긍정 (false positives)'이 매우 적을 것이다. 입력하는 동안 각 단어의 너비가 정확해야하기 때문에 검색 / 바꾸기를 사용하고 싶지 않습니다.

1
Ctrl + Shift + : (이 세 가지를 모두 누른 다음 놓아두고 누르십시오) + a 를 입력 할 때 원하는 경우 + a 가 사용되지 않는 이유가 있습니까?

답변:


1

한 가지 해결책 : wdKeyE다음 매크로에 바인딩

Sub my_e()
  Select Case (Selection.Previous(wdCharacter, 1))
    Case "a"
      Selection.TypeBackspace
      Selection.TypeText ChrW(228)
    'other cases, as desired 
    Case Else
      Selection.TypeText "e"
  End Select
End Sub

키 바인딩은 다음을 사용하여 수행 할 수 있습니다.

KeyBindings.Add KeyCategory:=wdKeyCategoryMacro, Command:="my_e", KeyCode:=wdKeyE

그리고 바인딩 해제 :

Sub e_unbind()
  Dim cmds As Variant
  Dim bind As KeyBinding
  For Each bind In Application.KeyBindings
    If bind.KeyCategory = wdKeyCategoryMacro Then
      cmds = Split(bind.Command, ".")
      If cmds(UBound(cmds)) = "my_e" Then bind.Clear
    End If
  Next
End Sub

... 지금까지 잘 작동


0

이것이 수퍼 유저로 마이그레이션되었으므로 일부 의견을 답변으로 포함시키는 것이 합리적입니다.

@Otaku는 키 조합으로 필요한 악센트를 만들 것이라고 언급했습니다.이 의견을 바탕으로 키 조합 및 영어 또는 미국 키보드 레이아웃으로 추가 할 수있는 악센트를 자세히 설명하는 목록을 찾았습니다. 이것은 Alt Gr을 사용하여 얻을 수있는 악센트와는 다릅니다.


@Otaku 이것은 정말로 귀하의 것이므로 답장을 보내려면이 커뮤니티 응답을 삭제합니다.
레모
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.