フォーム上、DataGrid中のセルについての動きを伺いたい。

教えていただきたいこと:
  (1)enterキーを押した時点、カーソルが自動的に同列の翌行のセルへ移動する。
  (2)セル間のリンクできますか?
   例:B2セルに数字1を入力したら、B5セルに自動的に決まった文字が表示される。

 解決方法を教えてください、よろしくお願いいたします。

A 回答 (1件)

グリッド内部の動きをカスタマイズしたいのであれば、DataGridではなく、FlexGridを使用することをお奨めします。

    • good
    • 0
この回答へのお礼

ご回答、ありがとうございます。

お礼日時:2002/02/08 15:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Qアクティブセルと同列の最下段セル選択

セルの範囲選択のやり方で悩んでいます。
アクティブになっているセルから、それと同列に有る文字・数値が入力された最下段のセルまでを範囲指定したいのです。
その際にセルは結合されている場合と、そうでない場合があります。

取得したセルアドレスは他にも使用したいので、出来る事ならアクティブセルと最下段のセルアドレスを別々に取得してから、その値を使って範囲指定できるようにしたいです。
宜しくお願い致します。

Aベストアンサー

方法はいくつかありますが。。

'-----------------------------------
Sub test()
 Dim LastCell As Range
 Dim myRange As Range

 Set LastCell = Cells(Rows.Count, ActiveCell.Column).End(xlUp)
 Set myRange = Range(ActiveCell, LastCell)

 myRange.Select
End Sub
'-----------------------------------
 
最終セル:LastCell
取得範囲:myRange

以上。

QDataGridのセルの移動について

いつもお世話になっております。

VB.NET2003にて開発を行っております。

作成している画面にDataGridを配置して入力等を行おうとしておりますが、その際に「Tabキー」ではセルの移動はできますが、「Enterキー」でもセルを移動させたいと思います。
(お客さまの要望で「Enterキー」移動を行いたいのです。)

どなたかご存知でしたらお教え願います。
宜しくお願い致します。

Aベストアンサー

まずはググった結果
一番上にマイクロソフトの技術情報がありますね。
http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=datagrid+enter+%E7%A7%BB%E5%8B%95&num=50

それと、製品版のコントロール
機能が強力です。
http://www.grapecity.com/japan/c1/c1grid%5Fselect/

Q[.Net] DataGridのセルをマージしたい

VB.NetでDataGridを使っています。
普通にデータを表示することはできるのですが、
セルをマージする方法はあるのでしょうか。
調べてみたのですが、なかなか見つからす困っています。
どなたか教えていただける方、お願いします。

Aベストアンサー

お世話になります。

標準の DataGrid に用意されている
インターフェースを見る限りでは、
セルの結合はできないと思った方がよいです。

http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.datagrid_members.aspx

参考URL:http://dobon.net/vb/bbs/log3-7/4322.html

QEnterキーで順番にセルの移動する。

Excel2013

Enterキーを押すと隣りのセルに移動ではなく、次に入力したいセルにカーソルが移動するようにしたいです。

たとえば、
必要事項を入力する書類で、B2のセルに入力したら次はD5のセルに入力、次はA6に入力といった書類あり、Enterキーを押して次の入力セルに移動するようにしたい。また、書類の書式を崩されたくないのでシート保護して使いたいです。
Enterで進み、戻る時はUPキーか、↑キーなどで設定したいと考えてます。

どなたか、VBで教えてくださる方お願いします。

Aベストアンサー

以下の要件で作ってみました。(当方、Excel2010です)

・入力順の制御をするセルの個数は制限しない。
・制御するセル番地をプログラム内に入れない。
・制御するセルを登録しやすくする。
・結合セルも可とする。

・基本的な移動順は上から下、左から右とする。(戻るときに必要)
・セルを移動するキー
  Enterキー、4つの方向キー、Tabキー、Shife+Tabキー
  セルを移動させたキーよりも移動後のセルで制御する
  方向キーの右、下はEnterキー、Tabキーと同じ
  方向キーの左、上はShift+Tabキー

・シートの保護・非保護には依存しないようにする。
・入力順の制御のオンオフを可能にする。

●最初に入力順の制御を行うシートで、開発タブ>挿入>フォームコントロールでチェックボックスを1つシート上に配置し、右クリック>コントトールの書式設定>コントロールタブ>リンクするセルを「$H$1」にして、チェックボックスはオフにしてください。マクロが「$H$1」になっているからです。後で修正してください。

入力用のマクロが動き出すと修正ができなくなるので、このチェックボックスのオン・オフでマクロを制御します。

●下記のマクロをシートのコードウィンドウに貼り付け、最初の行の「AdrJump」の右に動かすセルを「,」で区切って順に記入します。結合セルの場合はその左上のセル番地になります。数の制限はありませんがほどほどに。この登録データで環状リストを作ります。

●最初の時点は、編集した後、チェックボックスをオンにしてマクロを実行するとエラーが起きる可能性があります。VBE画面でマクロを中断し、「setEnableEvents」を実行してください。以降、エラーは起きないはずです。

●今のマクロは添付図での入力用の設定になっています。


シートのコードウィンドウに貼り付けます。

'□□□ 入力セルを順に書く □□□
Const AdrJump As String = "C2,C4,C5,F5,D7,D8,D10"

Dim Jmp1() As String  '飛び先のセル(今)
Dim Jmp2() As String  '飛び先のセル(前)
Dim DownUp As Integer '戻るか進むか(1:戻る、2:進む)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Range("H1") = False Then Exit Sub

  Application.EnableEvents = False
  Jmp1 = Split(getAdr(Target), ",")
  If Jmp1(0) = "" Then
    '前に進むか戻るかを判定
    DownUp = 1 - (Range(Jmp2(0)).Row < Target.Row Or _
           Range(Jmp2(0)).Column < Target.Column)
    
    Jmp1 = Split(getAdr(Range(Jmp2(DownUp))), ",")
    Range(Jmp2(DownUp)).Select: Jmp2 = Jmp1
  Else
    Jmp1 = Split(getAdr(Range(Jmp1(0))), ","): Jmp2 = Jmp1
  End If
  Application.EnableEvents = True
End Sub

'選択セル(結合セルも可)によってどこに移動するか候補を決める
Function getAdr(Tgt As Range) As String
  Dim wk() As String, i As Integer
  
  wk = Split("," & AdrJump & ",", ",")
  wk(0) = wk(UBound(wk) - 1) '環状リスト(最初)
  wk(UBound(wk)) = wk(1)   '環状リスト(最後)
  
  getAdr = ",,"
  For i = 1 To UBound(wk) - 1
    If Tgt.Range("A1").Address(0, 0) = wk(i) Then
      getAdr = wk(i) & "," & wk(i - 1) & "," & wk(i + 1)
      Exit For
    End If
  Next
End Function

'最初、編集時エラーが発生したらこのプロシージャを実行する
Sub setEnableEvents()
  Erase Jmp1
  Erase Jmp2
  Application.EnableEvents = True
End Sub

以下の要件で作ってみました。(当方、Excel2010です)

・入力順の制御をするセルの個数は制限しない。
・制御するセル番地をプログラム内に入れない。
・制御するセルを登録しやすくする。
・結合セルも可とする。

・基本的な移動順は上から下、左から右とする。(戻るときに必要)
・セルを移動するキー
  Enterキー、4つの方向キー、Tabキー、Shife+Tabキー
  セルを移動させたキーよりも移動後のセルで制御する
  方向キーの右、下はEnterキー、Tabキーと同じ
  方向キーの左、上はShift+Tabキー

...続きを読む

QAlt+Enterでセル内改行された文字をVBで認識させるには?

Excel2000です。

例えばA1に以下の様にAlt+Enterで改行された文字が書かれている時に
IF文を使ってマクロを実行したい場合、???にはどう書けば良いのでしょうか?
???に、1234Alt+Enter5678 と同じとさせる書き方です。
┌──┐
│1234│
│5678│
└──┘

Dim 認識 As String

認識 = Cells(1,1).Value
IF 認識 = ??? Then
・・・・実行したいマクロ

Aベストアンサー

"1234"+Chr(10)+"5678"です。


このカテゴリの人気Q&Aランキング

おすすめ情報