• ベストアンサー

vaSpreadのフォーカス移動?

vaSpreadで1レコードを3行明細で表示させています。3行明細の内,1行目の6列,7列,2行目の1列目がアンロックでそれ以外はロックしています。vaSpread内でtabキーを押下すると順番にカーソルが移動し1行目6列,7列,2行目2列,次明細の1行目6列と移動しますが、2行目2列にフォーカス移動させずに、1行目6列,7列,次明細の1行目6列,7列という具合にフォーカス移動させるにはどうすればいいのでしょうか? sendkeyで出来そうなことがヘルプにあって色々やってみましたがうまく行きません。どうかよきアドバイスをお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • hershe
  • ベストアンサー率55% (5/9)
回答No.1

こんばんは。hersheと申します。 たしか、vaSpreadのRowとColを設定して、Actionに0を代入するとスプレッドのセルにフォーカスを移せたと思いますが、 これとsendkeyを組合わせて出来ないでしょうか? 例) With vaSpread   .Row = 1   .Col = 1   .Action = 0 End With

torikokko
質問者

お礼

LeaveCellでCOLとROWをセットしACTION=0で移動できました。有難う御座いました。感謝いたします!m(__)m

torikokko
質問者

補足

hersheさん、レス有難う御座います。m(__)m ヘタな説明で回答がないのだと思っていました。(T_T) 早速月曜日に試してみたいと思います。m(__)m

関連するQ&A

  • vaSpreadの表示が消えてしまいます。

    VBの初心者です。よろしくお願いします。 VB6.0とvaSpread3.0を使用しています。 1度Spreadに表示した値が、新たな値を(1行下に)表示した際に消えてしまいます。 1度表示したものを残したまま、新たな行に値を追加していきたいのですが、何か方法はありますでしょうか? -------------行いたい動作------------- ・Form1.vaSpread1のチェックボックスの値(1or0)をForm1.Command1クリック後、Form2.vaSpread2に表示。 ・Form2.Command2を押すとForm1を表示し、再度チェックボックスを押せる状態にし、Form1.Command1を押すとForm2.vaSpread2の次の行に値を前回のチェック分を表示したまま追加表示したい。 この動作の繰り返し。 -------------コード------------- 【標準モジュール/Module1】 Public Row As Integer Public check As Integer 【Form1】 Private Sub Command1_Click()   vaSpread1.Row = 1 'チェックボックスのセル位置(行)   vaSpread1.Col = 2 'チェックボックスのセル位置(列)   Module1.check = Val(vaSpread1.Text)   Form2.Show End Sub 【Form2】 Private Sub Form_Load()   Call spreadShow End Sub Private Sub spreadShow()   vaSpread2.Row = Module1.Row + 1 '値を表示するセル指定(行)   vaSpread2.Col = 1 '値を表示するセル指定(列)   vaSpread2.Value = Module1.check End Sub Private Sub Command1_Click()   Form1.vaSpread1.Row = 1 'チェックボックスのセル位置(行)   Form1.vaSpread1.Col = 2 'チェックボックスのセル位置(行)   Form1.vaSpread1.Text = 0 'チェックボックスを元に戻す   Module1.Row = Module1.Row + 1   Form1.Show   Unload Form2 End Sub それとも、下記コードでは消してしまうような動作をしているのでしょうか? よろしくお願いいたします。

  • エクセルの行の折り返しについて

    エクセルの行の折り返しについて質問です。 A1のセルを選択しているときに「Tab」キーを押すと A1→B1→C1→D1→E1・・・というように移動しますが。D列に移動した後に「Tab」キーを押すと、次の行のA列にカーソルが移るようにしたいのですが、うまくいきません。 ヘルプ等検索してみましたが回答が得られませんでした。 設定方法を教えていただけないでしょうか?お願いします。

  • アクセス データ検索後のカーソル移動について

    データ検索し、一致したレコードのフィールドから次のフィールドに移動しようと しても、Tabキーで移動できません。通常は、データ移動する時は、Tabキーで 移動させています。 カーソル設定に関係があるのでしょうか。

  • ホームページビルダー9 フォーカス枠について

    ホームページビルダー9 フォーカス枠について質問がありますので、どなたかご教示いただけないでしょうか。 例えば、文字を2行にわたって入力する際、1行目の終わりで「Enter」で改行すると、「フォーカス枠」は2行分の高さに広がり、2行の文全体を囲みます。が、他の作業をしていて、再度、その2行の文の先頭にカーソルを移動すると、フォーカス枠はカーソルのある1行にしか表示されません。 なぜ、2行分を囲んで表示されないのでしょうか・・・。 回答の程宜しくお願い申し上げます。

  • JavaScriptのfocus()とselect()について

    focus()やselect()では文字列全体が選択されてしまいますが、 以下のようにtext内のテキストの後にカーソルを移動できないか 考えています。 xxxxxxI JavaScriptでなんとか工夫して出来ないでしょうか?

  • TabIndexを使わないで、フォーカスの移動

    ご多忙中大変申し訳ありません。 VBの初心者です。 TabIndexを使わないで、コントロールの名前の番号でフォーカスの移動をしたいのですが、私のレベルでは全くできません。 TextBox1、TextBox2、TextBox3、TextBox3、~TextBox15 のようにTextBoxの後ろに付いている、数字を利用してフォーカスの移動をしたいと思っております。 実装前に下記のようなコードを書いてテストしていますが、どこを調べても、また試行錯誤を繰り返してもできません。 Public Class Form1 'テスト Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Me.KeyPreview = True '1列目TextBoxの生成 Dim i As Integer For i = 0 To 4 Dim txtbx As New TextBox txtbx.Size = New Size(105, 30) txtbx.Location = New Point(50, 50 + i * 40) txtbx.Font = New Font("MSゴシック", 12, FontStyle.Regular) txtbx.TabIndex = i * 3 txtbx.Text = "TabIndexは" & CStr(i * 3) txtbx.Name = "TextBox" & CStr(i + 1) Me.Controls.Add(txtbx) Next '2列目TextBoxの生成 For i = 0 To 4 Dim txtbx As New TextBox txtbx.Size = New Size(105, 30) txtbx.Location = New Point(160, 50 + i * 40) txtbx.Font = New Font("MSゴシック", 12, FontStyle.Regular) txtbx.TabIndex = i * 3 + 1 txtbx.Text = "TabIndexは" & CStr(i * 3 + 1) txtbx.Name = "TextBox" & CStr(i + 6) Me.Controls.Add(txtbx) Next '3列目TextBoxの生成 For i = 0 To 4 Dim txtbx As New TextBox txtbx.Size = New Size(105, 30) txtbx.Location = New Point(270, 50 + i * 40) txtbx.Font = New Font("MSゴシック", 12, FontStyle.Regular) txtbx.TabIndex = i * 3 + 2 txtbx.Text = "TabIndexは" & CStr(i * 3 + 2) txtbx.Name = "TextBox" & CStr(i + 11) Me.Controls.Add(txtbx) Next End Sub Private Sub Form1_KeyDown(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown If e.KeyCode = Keys.Right Then '→キーによるフォーカスの移動 Me.SelectNextControl(ActiveControl, True, True, True, False) e.Handled = True ElseIf e.KeyCode = Keys.Left Then '←キーによるフォーカスの移動 Me.SelectNextControl(ActiveControl, False, True, True, False) e.Handled = True End If '↓(Down)キーによるフォーカスの移動  ここができません。 If e.KeyCode = Keys.Down Then Dim txtboxname As String txtboxname = Me.ActiveControl.Name 'TextBoxの名前の名前の取得 Dim txtbxnum As String txtbxnum = txtboxname.Remove(0, 7) 'TextBox~の名前から、~(数字)だけにする。 Dim controlName As String controlName = "TextBox" & CStr((CInt(txtbxnum) + 1)) 'TextBox~の名前の~に1を足す。 Me.Controls(controlName).Select() 'TextBox~+1のTextBoxをフォーカス 'Select() Focus()も結果は同じです。 End If '↑(Down)キーによるフォーカスの移動 'この部分は、↓(Down)キーによるフォーカスの移動が出来るようになりましたら、追加します End Sub ' Enterキーによるフォーカスの移動 Private Sub Form1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress If e.KeyChar = Chr(Keys.Enter) Then Me.SelectNextControl(ActiveControl, True, True, True, True) e.Handled = True End If End Sub End Class 最終的な目的の動作は、EnterキーではTabIndexの順番にフォーカスの移動。 ←キーでは、左にフォーカスの移動。 →キーでは、右にフォーカスの移動。 ↑キーでは、上にフォーカスの移動。 ↓キーでは、下にフォーカスの移動。 コントロールの名前の番号でフォーカスの移動をしたい理由は、 Enterキーと←、→キーによるフォーカスの移動でTabIndexの順番を使い、上下方向、↑キー、↓キー移動には、TabIndexの順番が画像のように少々複雑になってしまい、TabIndexを使用してのフォーカスの移動は断念しました。 もし、TabIndexでフォーカスの移動が出来るようなら、そちらのほうでもかまいません。 使用バージョンは、VB2010 Express Edition です。 ご迷惑を、おかけしますが、どうかご助力をお願いいたします。

  • テキストエリアをenterキーでフォーカス移動したい

    複数あるテキストエリア間を、enterキーでフォーカス移動をしたいです。 以下のようにしましたが、2つめのテキストエリアへフォーカス移動すると、改行が入力され、カーソルが2行目へ移動してしまいます。 enterキーを押しているのでこうなってしまうと思うのですが、 カーソルが1行目へ移動するようにするには、どうしたらいいでしょうか? フォーカス移動後に改行コードがあったら、""にreplaceする・・等、試してみたのですが、なかなか上手くいきません。 どなたかお分かりになる方がいらっしゃったら、教えてください。 <HTML> <HEAD> <SCRIPT language="JavaScript"> <!-- function FirstFocus() { document.forms.F1.elements[0].focus(); } function nextFocus(n) { if (event.keyCode == 13) { for (var i = 0, f = n.form.elements; i < f.length; i++) { if (f[i] == n) { (f[i + 1] || f[0]).focus(); } } } } //--> </SCRIPT> </HEAD> <BODY onload="FirstFocus()"> <FORM name="F1"> <TEXTAREA name="T1" rows="5" cols="30" onkeydown="nextFocus(this);"></TEXTAREA><BR> <TEXTAREA name="T2" rows="5" cols="30" onkeydown="nextFocus(this);"></TEXTAREA><BR> <TEXTAREA name="T3" rows="5" cols="30"></TEXTAREA><BR> </FORM> </BODY> </HTML>

  • [HTML]TABインデックスはいいけれど・・・。

    こんばんは。 HTMLでフォームを作った際、タグの中に TAGINDEX='x' と設定してやればその順番どおりに「TABキー」を押したらフォーカスが移動しますよね? 例えば5つのテキストボックスがあってそのうち3つに1,2,3とTABインデックスをつけたとします。その場合、最初の3回はその順番どおりにいき、次に押せば、TABインデックスがなく、先に表示されているテキストボックスにフォーカスが移動してしまいます。 私としては残りの2つはTABでフォーカスしてほしくないのです・・・でもマウスクリックではして欲しいのです。 つまり、フォーカスが来たからと言って違うテキストにフォーカスを移すというJavaScriptではダメです。マウスでクリックした場合も移動してしまうからです。 なんかいい方法ないですか?

  • VBAのフォーム カーソル移動

    VBAのフォームでテキストボックス(1)~テキストボックス(5) まで作ったとします。 カーソルの移動はtabindexの値を順番につければいいのですが、例えばENTERキーとTABキーを両方押したときは カーソルが一つ飛ぶ制御をしたいのですがどうすればいいでしょうか? つまり カーソルがテキストボックス(1)にいる状態でENTERキーとTABキーを同時に押せばカーソルがテキストボックス(3)に移動するようにしたいのですが、お願いします

  • 【Tabキー】特定の範囲内だけでフォーカスを循環

    お世話になります。 javascript初心者のため、的外れな質問をしていましたらすみません。 HTMLサイトのフォーカスを、TabキーまたはShift+Tab押下で特定の範囲内で循環させたいと考えております。 イメージ的には、サイトのメニューにあたる部分(リンク)をぐるぐるループしてくれれば・・・と思うのですが。 Tabindex指定ですと、意図した順番には移動してくれますが、最後のTabが押されても最初に戻ることはできませんし・・・ そう思ってonkeydownで制御しようと思ったのですが、Shift+Tabの動作をどう実現していいのか分かりませんでした。 言葉足らずで申し訳ありませんが、ご回答宜しくお願い致します。

専門家に質問してみよう