お世話になります。
あるセルを選択し、コマンドボタンをクリックすると別のシートにある詳細記入欄があるセルにジャンプし、入力が終わってまた違うコマンドボタンを押すと最初に選択したセルと別シートに記入した内容がリンク付けされているというものを作成したいと思っています。
一例をいうと、メインシート(点検チェックシート)、サブシート(点検詳細内容シート)があってメインシートのあるセルを選択してコマンドボタン(ユーザーカスタムで作成?)を押すと自動的にサブシートに飛びます。サブシートでは番号(通し番号)が振ってある表があり、上記のコマンドボタンを押すと自動的に新しいセルに記入でき、そしてさらに別のコマンドボタンを押すと、メインの最初に選択したセルにサブの番号が書かれて、次回からはその番号を押すとサブのシートに飛ぶといった実に都合のいい思いをもっています。
このことを実現しようとするとどのようなテクニックを駆使すればいいのか、ご教示いただけますか?
No.8ベストアンサー
- 回答日時:
#1です・・・。
入れ違いで補足質問が・・。エラーは解決したのでしょうか??
>B列X行に飛ぶとそのまま入力ができるのでありがたいのですが、少しのカスタムでできるものでしょうか?
すごく簡単です。
SubAddress:="点検詳細内容シート!A" & i, TextToDisplay:=Str(i)
↓
SubAddress:="点検詳細内容シート!B" & i, TextToDisplay:=Str(i)
にすればいいです。
それと先頭行をタイトルとした場合は番号が1でも、行数は2になるので下記のようにして下さい。
SubAddress:="点検詳細内容シート!B" & i-1, TextToDisplay:=Str(i)
No.7
- 回答日時:
#1です。
サブシートの先頭行をタイトルの行にして下さい。
下記を新規に作成したブック内でテストしましたが、こちらではエラーにはなりません。
新規のブックで試しても同じでしょうか?
Sub ボタン1()
Sheets("点検詳細内容シート").Activate
Range("B65536").End(xlUp).Offset(1).Select
End Sub
Sub ボタン2()
i = Range("B65536").End(xlUp).Offset(, -1).Value
Sheets("点検チェックシート").Activate
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", _
SubAddress:="点検詳細内容シート!A" & i, TextToDisplay:=Str(i)
End Sub
ありがとうございます。
新しいブックで試したところうまくいきました。
ただ、サブシートの1行目をタイトル行にして、メインシートに出来たハイパーリンクをクリックすると、メインシートの番号-1行目のセルが表示されます。
先ほどの補足でお願いした件を含めて、ご一考いただけますでしょうか?
無理なお願いばかりですいません。よろしくお願い致します。
No.6
- 回答日時:
#1です。
>メインシートに採番された番号をクリック・・・するB列X行に飛ぶ、若しくはA列にとぶということです。
先ほどの回答でA列の番号のある行に移動するようになっています。
>1番が1行目っていうことですか?
そうです。まぁ食い違っても補正すればいいだけのことですが。
>ただ、メインの行とサブの行は一致しません。
メインシートのあるセルを選択してコマンドボタンなので問題ないと思います。
>こんな説明でご理解いただけますでしょうか?
理解しました。前回の回答で解決できますね。
この回答への補足
すいません。
先ほどのテストで1(アンダーバー)しかでないって件は1行目のセルにしか記入されていなかったからで、2行目以降を記入すると問題なく動いてくれます。
それと、わがままを言わせて頂くなら、サブシートに移ったときに、B列X行に飛ぶとそのまま入力ができるのでありがたいのですが、少しのカスタムでできるものでしょうか?無理をいってすいません。
ご丁寧にご説明いただきありがとうございます。
早速試してみたところ、ボタン1をクリックすると
実行時エラー’1004’:
Range クラスのSelect メソッドが失敗しました。
という、メッセージが出て、
Range("B65536").End(xlUp).Offset(1).Select
が黄色くでてきます。
私が試したのは、メインシートにボタン1をサブシートにボタン2を貼り付け、サブシートのA列にはあらかじめ1~10程度の番号を振りました。
また、エラーメッセージを無視して、ボタン2を押すとメインの選択したセルには常に1(アンダーバー)が表示されるみたいです。この部分はまだエラーの過程なのでいいとして、最初のエラーメッセージはなにかやり方が間違っているのでしょうか。再度ご教示いただけるとありがたいです。
すごくやりたいことに近づいてきているようなので、期待しています。よろしくお願い致します。
No.5
- 回答日時:
#1です。
こういうことなのでしょうか?
>次回からはその番号を押すとサブのシートに飛ぶといった
これがよくわかりません。「点検詳細内容シート」の番号の行に移動すれば
いいのでしょうか?
下記はメインの番号を押すとサブの該当する番号のセルに移動します。
但しサブの番号とシートの行が一致している場合です。
Sub ボタン1()
Sheets("点検詳細内容シート").Activate
Range("B65536").End(xlUp).Offset(1).Select
End Sub
Sub ボタン2()
i = Range("B65536").End(xlUp).Offset(, -1).Value
Sheets("点検チェックシート").Activate
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", _
SubAddress:="点検詳細内容シート!A" & i, TextToDisplay:=Str(i)
End Sub
この回答への補足
ありがとうございます。
>>次回からはその番号を押すとサブのシートに飛ぶといった
>これがよくわかりません。「点検詳細内容シート」の番号の行に移動すればいいのでしょうか?
欲をいうと、メインシートに採番された番号をクリックすると、サブシートのA列に振られていた通し番号に対応するB列X行に飛ぶ、若しくはA列にとぶということです。
サブの番号とシートの行が一致しているということは、1番が1行目っていうことですか?これはこれから作成ってことで、何とかなると思うのですが。
ただ、メインの行とサブの行は一致しません。メインの行が複数ある場合があります。(列が複数あるため)
こんな説明でご理解いただけますでしょうか?
No.4
- 回答日時:
回答に対する補足を読みました。
>すとあらかじめ通し番号の振ってある表
ということで、B列には、入力がされていないということですよね?私の回答の
Worksheets("サブシート").Cells(Rows.Count, 1).End(xlUp).Row
は、A列の入力されている行数になりますので、
Worksheets("サブシート").Cells(Rows.Count, 2).End(xlUp).Row
とすれば、入力済みの件数が得られます。
No.3
- 回答日時:
私の場合、ボタンを並べた「操作シート」を作成して、やっていました。
ユーザーフォームを作成して、入力する内容(点検詳細)の入力欄をテキストボックス等で作ります。
サブシートの点検詳細内容は、1件分が1行であると仮定するとサブシートに入力されている行数は
Worksheets("サブシート").Cells(Rows.Count, 1).End(xlUp).Row
という式で、得られます。つまり入力済みの件数が得られます。
With Worksheets("サブシート")
.cells(入力行,入力項目番号).value=入力内容
・
・
・
End With
等とすれば、サブシートに書き込めます。
書き換える場合は、入力されている行番号を、コンボボックスで、選択するようにすれば、その数を入力行とすれば、上記で作った物がほぼそのまま使えます。
端折って書いたので分かり難いかもしれませんが、どうでしょうか?
ありがとうございます。
ユーザーフォームを作成して、制御はそこで行い、サブシートのB列に入力された件数を探し、件数+1行目に書き込むってことですか?
できれば、具体的にご教示いただければありがたいのですが。
また、書き込み後のハイパーリンクもご教示いただければ、理想に近い形になるような気がします。
エクセルはかなり初心者なので、見当違いかもしれませんが、よろしくお願いします。
No.2
- 回答日時:
結局はマクロ(VBA)を思考錯誤しながら作ることになると思いますので、単にテクニックというのはここでは説明しきれないかと・・・
ただ、上記に書かれている操作をそのままマクロとして記録した上で、過不足を修正する、というのがいいのではないかと思います。
メニューのツールからマクロを選択し、マクロの記録を選択してから上記の操作を行って登録すると、あとは適当なコマンドボタンにそのマクロをつけて実行すれば操作が再現されますよ
No.1
- 回答日時:
>上記のコマンドボタンを押すと自動的に新しいセルに記入でき
意味がわかりません。
>次回からはその番号を押すとサブのシートに飛ぶといった実に都合のいい思いをもっています。
ハイパーリンクでしょうか?
可能だと思いますが、一体どこまでできているのでしょうか?
この回答への補足
早速のご回答ありがとうございます。
>>上記のコマンドボタンを押すと自動的に新しいセルに記入でき
>意味がわかりません。
コマンドボタンを押すとあらかじめ通し番号の振ってある表で前回記入した番号+1のセルにジャンプするという意味なのですが。
1 ○○
2 ○▲
3 ←ここへ記入できるようにジャンプという意味なのですが。
>>次回からはその番号を押すとサブのシートに飛ぶといった実に都合のいい思いをもっています。
>ハイパーリンクでしょうか?
結果はそうなると思います。
AccessのVBAを少しかじった程度で、エクセルはまだ未経験です。最初はアクセスで作ろうとおもったのですが、表形式の記入が多い為、エクセルでチャレンジしようと思いました。現在、メインシートを作成中で、テクニカルな部分には未着手(出来ない!)の状態です。
以上、よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Excel(エクセル) excelで検索した商品の画像(ネットワーク上の)を表示させたい。 3 2023/06/28 00:32
- Excel(エクセル) マクロを教えてください 3 2023/07/31 21:57
- Excel(エクセル) マクロを教えてください 2 2023/07/30 23:05
- Excel(エクセル) EXCEL ActiveX コマンドボタンで実行する前にいったんmsgBoxで確認を求めたい 1 2022/07/06 19:41
- Visual Basic(VBA) Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる 3 2022/12/21 09:07
- Visual Basic(VBA) 複数ファイルのデータの統合について 12 2022/05/14 12:03
- Visual Basic(VBA) エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい 9 2022/08/24 13:23
- Excel(エクセル) 【エクセル】文中に別シートのセルの内容を自動入力したい 6 2022/11/17 11:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで同じシートのコピーを一...
-
エクセルの複数シートの保護を...
-
エクセルVBAでパスの¥マークに...
-
EXCEL:同じセルへどんどん足し...
-
別シート参照のセルをシート毎...
-
エクセルで前のシートを連続参...
-
VBAでシートコピー後、シート名...
-
シートの保護のあとセルの列、...
-
エクセルで前シートを参照して...
-
EXCELで1ヶ月分の連続した日付...
-
前の(左隣の)シートを連続参...
-
Accessのスプレッドシートエク...
-
エクセルでファイルを開いたと...
-
エクセルでシート名を自動入力...
-
Excel、同じフォルダ内のExcel...
-
【Excel関数】値が合致するセル...
-
EXCELで同一フォーマットのシー...
-
至急お願いします。エクセルシ...
-
Excelの複数ファイルの複数行を...
-
複数シートの固定のセルの値を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで同じシートのコピーを一...
-
エクセルの複数シートの保護を...
-
エクセルVBAでパスの¥マークに...
-
前の(左隣の)シートを連続参...
-
Excelで金銭出納帳。繰越残高を...
-
EXCEL:同じセルへどんどん足し...
-
EXCELで1ヶ月分の連続した日付...
-
シートの保護のあとセルの列、...
-
別シート参照のセルをシート毎...
-
エクセルでファイルを開いたと...
-
EXCELで同一フォーマットのシー...
-
エクセルで前のシートを連続参...
-
エクセルで前シートを参照して...
-
VBAでシートコピー後、シート名...
-
Accessのスプレッドシートエク...
-
エクセルのシート名をリスト化...
-
複数シートの特定の位置に連番...
-
Excelのシートを、まとめて表示...
-
エクセル 計算式も入っていない...
-
スプレッドシートの関数VLOOKUP...
おすすめ情報