| 
    
     |  | こんばんは。 >具体的には以下のイベントプロシジャーのDoループの中で、例えばキー[k]を押す
 >とアクテブにしたセル(例えばC5)に[k]が表示されるのです。
 >MS-DS上のBasic(VBは調べてありません)ではinkey$ステートメントで解決しますがExcelVBAにはinkey$がありません、inkey$に変わる方法が無いものかと苦労しています、お手数をおかけしますが何か良い方法がありましたら、ご教授ください。
 >
 >Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 >  Dim actRw As Integer, actCl As Integer
 >  actRw = ActiveCell.Row
 >  actCl = ActiveCell.Column
 >  Do
 >    Cells(actRw, actCl) = inkey$
 >  Loop While Cells(actRw, actCl) <> ""
 >End Sub
 やりたい事はわかりましたが・・・。
 inkeyに相当する動作は見つけられませんでした。
 上のコード、Basicのinkey命令から推測すると、一文字だけアクティブセルに入力させたいということでしょうか?
 
 こんな方法で代替出来ませんか?
 当該シートに「コントロールツールボックス」のテキストボックスを作成して下さい。
 オブジェクト名は、TextBox1。
 
 当該シートモジュールに
 '================================================================
 Private ev_flg As Boolean
 '================================================================
 Private Sub TextBox1_Change()
 If ev_flg = False Then
 With TextBox1
 .TopLeftCell.Value = .Text
 .Visible = False
 End With
 End If
 End Sub
 '=================================================================
 Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 Set rng = ActiveCell
 With TextBox1
 .Top = rng.Top
 .Left = rng.Left
 .Width = rng.Width + 2
 .Height = rng.Height + 2
 .MaxLength = 1
 .Font.Size = 9
 .Visible = True
 ev_flg = True
 .Text = ""
 ev_flg = False
 .Activate
 End With
 End Sub
 
 Basicに Input(1) なんていう命令がありましたね。
 これに近くなってしまいますが・・・。
 
 上記の準備をした後に
 当該シートのあるセルを選択してみて下さい。
 
 
 |  |