No.6ベストアンサー
- 回答日時:
ぶっちゃけ今のご相談では,「デタラメにあっち行ったりこっち行ったりします」以上の詳しい情報もなく,既出回答者への補足としても「沢山あって大変です」しかありませんので,具体的な良い方法を考えるにはあまりにネタ不足です。
>セル数を増やす場合の対処を教えて頂けないでしょうか?
ここまでのお話では,単純にアナタの順番に従って列記してくださいとしか言えません。
かろうじて
>途中で上下から左右に移動させなければならない部分があり、違う方法を探してました。
という事であるなら,
1.シートの保護で移動できるセルを限定する
2.シート名タブ右クリックのマクロで
private sub worksheet_selectionchange(byval Target as excel.range)
if application.intersect(target, range("10:20")) is nothing then
application.moveafterreturndirection = xldown
else
application.moveafterreturndirection = xltoright
end if
end sub
としておく
なんて作り方をしておくと,可動範囲の中で「10行目から20行目のセルに入るとEnterで右移動,それ以外はEnterで下移動」といった仕込みは出来ます。
また,
>Sheet1を入力フォームとしSheet2・3に反映するものですが、
というお話であれば,シート1の「入力順」をあっちこっち行って帰ってにする必要は全く無いと思われます。
要はシート2,3を指定の帳票として出力できればよいのですから,シート1は上から順番に素直に入力できるよう考えて作成し,必要なデータをシート2,3の必要な場所に配置して作成すれば出来上がりに見えます。
ありがとうございます。
おっしゃる通りなんですが、どうしてもセルを決まった順番でそれ以外に移動しないようにしたかったんです。
もう少し勉強して出直します。
No.5
- 回答日時:
>いろいろ探しましたがなぜか上手く作動しません・・。
大概失敗しているのは,「空打ち(空Enter,Tab移動)」と「データ入力による次のセルへの移動」がキチンと手当てできていないからです。
作成例
1枚目のシートでB2,D7,C11,E3の順で移動する(ローテーションする)
手順:
標準モジュールに下記をコピー貼り付ける
public Prepos as range
sub Auto_Open()
worksheets(1).select
set prepos = worksheets(1).range("B2")
application.enableevents = false
prepos.select
application.enableevents = true
end sub
シート1のシートモジュールに下記をコピー貼り付ける
private sub Worksheet_SelectionChange(byval Target as range)
dim a, b
a = array("B2", "D7", "C11", "E3")
b = application.match(prepos.address(false, false), a, 0)
set prepos = range(a(b mod (1 + ubound(a))))
application.enableevents = false
prepos.activate
application.enableevents = true
end sub
ブックを保存して閉じ,開き直す。
#別の方法
ぶっちゃけ「指定の順」で移動させようとするのも,(特に入力セルが沢山あるなら)大概ナンセンスな試みです。
ご利用のエクセルのバージョンも不明ですが,もっと簡易な(かつ安全な)手段としては
1.入力してよいセルについて,セルの書式設定の保護でロックのチェックを外しておく
2.シートの保護を開始し,その際に「ロックされたセルの選択」のチェックを外しておく
といった仕込みで,概ね実現できます。
ありがとうございます。
素人の私でも初めて作動しました。 感動です。
#別の方法 は既に行ったのですが、途中で上下から左右に移動させなければならない部分があり、違う方法を探してました。
名前ボックスもセルの数が多くて対応しないし、VBAで入力フォームも作ってみましたが、入力点数が多くて逆に手間がかかるので他の方法を探してました。
完成を目指しているのは契約書を作成するために、Sheet1を入力フォームとしSheet2・3に反映するものですが、印刷する契約書(2種類)が規制の印刷物となっているので、Sheet2・3にイメージで張り付けて、印刷物の位置にセルを微調整しながら表示させて出力させてます。
既製の印刷物は替えようがないし、ひとつのフォームに入力して2つに反映させるソフトはないし、苦肉の策で今のようなことを始めました。
最後にもう一つ教えて頂けると非常にたすかります。
他に何か良い方法はありますか? または先で教えて頂いた方法で、セル数を増やす場合の対処を教えて頂けないでしょうか?
素人相手に大変お手数とは思いますが何卒宜しくお願い致します。
No.4
- 回答日時:
No.2です!
>指定したいセル数が200強あり・・・
とありましたので、またまたお邪魔しました。
操作したいSheetはSheet1とします。
Enterキーで次のセルへの規則性がないようなので、
Sheet2に↓の画像のように選択セルの順番を表示しておきます。
Sheet1のSheet見出し上で右クリック → コードの表示 → VBE画面にしたのコードをコピー&ペーストして
A1セルに入力 → Enter ・・・としてみてください。
Private Sub Worksheet_Change(ByVal Target As Range) 'この行から
Dim i, j, k As Long
Dim str As String
Dim ws As Worksheet
Set ws = Worksheets(2)
On Error Resume Next
str = WorksheetFunction.Substitute(Target.Address, "$", "")
If WorksheetFunction.CountIf(ws.Columns(1), str) Then
i = WorksheetFunction.Match(str, ws.Columns(1), False)
j = ws.Cells(i + 1, 2)
k = ws.Cells(i + 1, 3)
End If
Cells(j, k).Select
End Sub 'この行まで
※ 無理やりって感じの方法ですが、他に良い方法があればごめんなさいね。m(__)m
No.3
- 回答日時:
エクセルVBAの質問だから、最終的には、シートのデータを作りたいのだろうが
>常にEnterで指定した順番に移動させる方法
の意味が質問がアバウトで、両義に取れないか?
(1)セル移動か
(2)テキストボックスなどの選択の移動か(フォーカス)。(入力のコントロールの移動)
はっきり表現できてない。
ーーー
(2)は「TabIndex」=タブオーダーの順序、とうい話題のことだろう。しかしTABキーでの移動を前提にする。
UserForm1などのデザイン状態で右クリック、タブオーダーがある。
しかしテキストボックスは、始の設計から、入力順に上下位置を並べて作るのでは無いですか。
参考
http://www.rottel.net/sdj/3398
Googleで「VBA テキストボックス タブオーダー」または「・・タブインデックス」などで照会。
ーー
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then ' TABキーのKeyCode。KeyCodeの確認は、MsgBox KeyCode でよろし。
Me.TextBox4.SetFocus
End If
End Sub
Private Sub TextBox4_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then ' TABキーのKeyCode。KeyCodeの確認は、MsgBox KeyCode でよろし。
Me.TextBox3.SetFocus
End If
End Sub
のようなのを作っておくとそれらしく出来る。1->3->4の例。
ーー
(1)は
Private Sub CommandButton1_Click()
Set x = Range("B65536").End(xlUp)
i = 0
x.Offset(1, i) = TextBox1.Text
i =1
x.Offset(1, i) = TextBox2.Text
i =2
x.Offset(1, i) = TextBox3.Text
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
End Sub
この i=0,1,2をシートの列の内容とTextBoxの内容が合うように調節する。
ありがとうございます。
皆様が考えているより素人でして・・・すみません。
Sheet1に表を作り、それを入力フォーム用として活用しようと考えております。
Sheet1のセルに順番を決めて(A1,C3,B2,H5・・・・)、Enter若しくはTabで移動できないないかと考えてます。
指定したいセル数が200強ありTabindex等では上手く作動しません。
簡単な方法はありませんか?
おそらくご回答の内容を少しいじれば解決するのでしょうけど私には上手くでませんでした。
何卒宜しくお願い致します。
No.2
- 回答日時:
こんばんは!
外していたらごめんなさい。
>入力フォームを作っておりますが・・・
に関して、ユーザーフォームを使っている訳ですかね?
もしそうであれば、
フォームの「テキストボックス」のプロパティ→「Tabindex」の数値で順番が指定できます。
ただ、質問文の「題名」に
>エクセルVBAを使いセルを指定した順番・・・
とありますので、たぶん上記の方法ではなく、セルの移動方法の質問だと解釈して・・・
画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面がでますので
↓のコードをコピー&ペーストしてセルに入力 → Enter としてみてください。
Private Sub Worksheet_Change(ByVal Target As Range)
Target.Offset(, 2).Select
End Sub
どのセルに移動したいのか判らないので、
入力 → Enter → で2つ右側セルに移動する としてみました。
※ 実際はこのように決まったセル移動ではないと思いますし、すべてのセルで適応しないと思いますので
具体的にどのように移動したいのか判ればもっと具体的なコードの回答があると思いますよ。
この程度でごめんなさいね。m(_ _)m
ありがとうございます。
コンパイルエラーと出てしまいます???
本当の素人なので少し勉強してから出直します。
ありがとうございました。
No.1
- 回答日時:
>常にEnterで指定した順番に移動させる方法はありますか?
意味を都立が得ていなければ
SetFocusで検索してみてください。
たぶん
Textbox1に
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox3.SetFocus
End Sub
とすれば、TextBox1から抜け出すとTextbox2ではなく
Textbox3 へ移動します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルVBA 任意のセルの選択時、指定のセルの値を表示 1 2023/04/21 08:13
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Excel(エクセル) エクセル バーコード作成で他のシートを参照するには? 2 2023/05/03 16:57
- Excel(エクセル) 【エクセル】文中に別シートのセルの内容を自動入力したい 6 2022/11/17 11:30
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Windows 10 MicrosoftIMEでトラブル、助けてください m(_._)m 4 2023/05/16 14:11
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- Excel(エクセル) 表内で、Enterキーで横→行の最後入力したら次の行の先頭に移動するマクロを作りたい 3 2022/05/01 21:19
- Excel(エクセル) シートが違う2枚のエクセルシートにある数値を別シートにコピーしたい(VBA?) 8 2022/03/31 12:24
- Excel(エクセル) 【VBA】A列の指定した値と同じ行にあるD列の値を順番にコピペするマクロについて 4 2023/02/01 18:16
このQ&Aを見た人はこんなQ&Aも見ています
-
餃子を食べるとき、何をつけますか?
みんな大好き餃子。 ふと素朴な疑問ですが、餃子には何をつけて食べますか? 王道は醤油とお酢でしょうか。
-
「平成」を感じるもの
「昭和レトロ」に続いて「平成レトロ」なる言葉が流行しています。 皆さんはどのようなモノ・コトに「平成」を感じますか?
-
遅刻の「言い訳」選手権
よく遅刻してしまうんです…… 「電車が遅延してしまい遅れました」 「歯医者さんが長引いて、、、」 「病院が混んでいて」 などなどみなさんがこれまで使ってきた遅刻の言い訳がたくさんあるのではないでしょうか?
-
いけず言葉しりとり
はんなりと心にダメージを与える「いけず言葉」でしりとりをしましょう。 「あ」あら〜しゃれた服着てはりますな 遠くからでもわかりましたわ
-
とっておきの「まかない飯」を教えて下さい!
飲食店で働く方だけが食べられる、とっておきの「まかない飯」。 働いてらっしゃる方がSNSなどにアップしているのを見ると、表のメニューには出てこない秘密感もあって、「食べたい!!」と毎回思ってしまいます。
-
Excel VBA あるセルでENTERを押すと特定のセルへ移動したい
Excel(エクセル)
-
Enterキーで順番にセルの移動する。
Visual Basic(VBA)
-
入力するセルの順番を自動選択(セルの移行)
Excel(エクセル)
-
-
4
値を入力後、自動的にアクティブセルが移動するマクロ
Excel(エクセル)
-
5
エクセルでエンターを押すと任意のセルに移動は出来ますか?
その他(コンピューター・テクノロジー)
-
6
Enterキーでマクロを起動さす。
その他(ソフトウェア)
-
7
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
8
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
9
excelの入力順を決める方法について
Excel(エクセル)
-
10
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
11
別のシートから値を取得するとき
Visual Basic(VBA)
-
12
エクセルのVBA 特定のセルでエンターキーでマクロ実行
Excel(エクセル)
-
13
excelで セルの移動時にマクロ実行を設定したい。
Excel(エクセル)
-
14
入力後enterを押すと、非保護の別セルへ移動したい。(エクセル)
Excel(エクセル)
-
15
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
16
エクセル TABキーの動きをマクロで
Excel(エクセル)
-
17
EXCEL あるセルに数字が入力されれば既存マクロ実行させたい
Excel(エクセル)
-
18
TextBoxに日付を自動的に入れる
Visual Basic(VBA)
-
19
未記入がある場合はマクロを実行させない方法
その他(Microsoft Office)
-
20
VBA 選択された離れたセルの値の取得について
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAを使いセルを指...
-
エクセルで全部の数字を3倍したい
-
エクセルで最後に入力したセル...
-
Excelで数値→文字列変換で指数...
-
テキストボックス内の文字のふ...
-
Excelで行ごとコピー、同じ行を...
-
エクセルでグラフタイトルが折...
-
Excelの関数について、特定の文...
-
塗りつぶしの色をコピーするには
-
たくさん作った同じ設定のグラ...
-
エクセル
-
日付が1年以内になると他のセル...
-
エクセルにおける、グラフの指...
-
C+vのvは英語で何の頭文字...
-
エクセル 指定した文字列を含...
-
パワーポイントに貼り付けたエ...
-
イラレのグラフがグループ解除...
-
WORDのグレー括弧って?
-
負のデータが含まれている場合...
-
数字がセルの左側に寄っていて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スピンボタンのコピー
-
エクセルVBAを使いセルを指...
-
エクセル VBA 特定の範囲内に一...
-
エクセルで全部の数字を3倍したい
-
HYPERLINKのリンク先のセル範囲...
-
ワードからエクセルへのハイパ...
-
データベース関数のCriteria(...
-
セルに入力したファイル名を参...
-
エクセルでの先頭文字について
-
エクセルの式設定で教えてくだ...
-
VBAからIEを操作する時のウィ...
-
エクセルの数式で教えてください。
-
SUBSTITUTE関数を単体適用じゃ...
-
エクセルVBA: 別のセルからの...
-
エクセルで最後に入力したセル...
-
エクセルVBA 結構初歩的なこと...
-
エクセル 同一セル内の特定文...
-
Excelで数値→文字列変換で指数...
-
テキストボックス内の文字のふ...
-
Excelで行ごとコピー、同じ行を...
おすすめ情報