■
http://q.hatena.ne.jp/1290914062
もう終わった質問のようだけど自分だったらこういう回答になるかな。
まず、セルに入力状態の時にマクロを実行するのは不可能。
それでセルを選択するときに右のセルの文字列をクリップボードにコピーし、
マクロではなくCtrl+Vで貼りつければ同様のことができるのではないかと。
具体的にはセルの選択時にコピーするコードはこちら。
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim CB As New DataObject CB.SetText Target.Offset(0, 1).Value CB.PutInClipboard End Sub
※ Microsoft2.0 Object Livraryの参照設定が必要。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
B1セルに限らず19文字のロシア語全部をExcelでロシア語キーボードにしてしまいます。
標準モジュールの先頭に
Public myRange As Range
シートモジュールに
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Intersect(Target, Range("B1:T1")) Is Nothing Then Set myRange = Target Else myRange.Value = myRange.Value & Target.Value myRange.Select SendKeys "{F2}" End If End Sub
これでA1セルに限らず任意のセルで入力中にロシア語を入力するときに該当の
セルをクリックすることで入力され、入力状態に戻るマクロとなります。