|
こんばんは。
>具体的には以下のイベントプロシジャーの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) なんていう命令がありましたね。
これに近くなってしまいますが・・・。
上記の準備をした後に
当該シートのあるセルを選択してみて下さい。
|
|