例えば、社員の名前をある列に入れないといけないとき
入力規制とかで、社員の名前の記述されたデータ列を指定すると、リストボックスで選択できる様になりますよね。
しかし、社員数が100人位いて多い場合、選択するのも結構大変になります。
そこで、読みのはじめの人文字を入れたてからリストボックスを開くと、該当データ辺りにカーソルが来ていて、入力しやすくできるといった方法はないものでしょうか。
やり方はリストボックス形式にこだわりません。入力しやすければいいです。
入力する社員名は決まっていて、新規の入力はできなくても良いです。ただし、社員が増えた時は、リストに追加して入力できるようにしたいです。

このQ&Aに関連する最新のQ&A

A 回答 (8件)

(1)エクセルにはあるセルに小島 完と入力して同列下のセルで小島と入力すると小島 完が出てくる機能がある。

これを使えないか考えたが、うまく行かない。
(2)VLOOKUP関数で候補を引けないか考えたが
同姓があると(全員苗字名前とも違わないと)うまく行かない。
(3)H1:H10に名前が
小島 完
小島 三平
小島 三平
小島 順
小嶋 洋平
川村 次郎
朝霞 清
朝霞 源次
朝霞 次郎
兵庫 建次
兵庫 太郎
とあり、そのまま(漢字で)ソートする。そしてG1に関数=LEFT(H1,1)を入れ、G10まで複写する。
E1に名前先頭漢字1文字入力する。
F1に関数=OFFSET($H$1,MATCH($E$1,$G$1:$G$10,0)+ROW()-2,0)と入れ、同じ漢字で始まる最大人数分の行数を
複写する。この例では「小X XX」が5人いるのでF5行まで複写する。
これでE1に「小」と入れると、F1:F5は
小島 完
小島 三平
小島 三平
小島 順
小嶋 洋平
となるから、この中から選べば良い。
しかし選んだF1:F5のうちのセルから、目的のセルへのコピーが難しくてで来そうにもない。(手操作で、毎回コピーするならそれはそれで良いが、手数がかかると感じるでしょう)。そこでVBAで
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static c As Integer
If Target.Column = 6 Then
Cells(c + 1, "c").Value = Target.Value
c = c + 1
End If
End Sub
をVBEのSheet1のSelectionChangeイベントに貼りつけました。
これでE1セルに名前第1字入力--->F1:F5に候補セット--->F1:F5のどれかを選択してクリック
--->C列にC1から上から順に選択した名前をセットする。
(4)本来は質問の意図を実現するには、VBAで2段検索をして、即ち名前の第1文字で表を検索し、リストボックスかコンボボックスに候補の名前を表示し、その中から
クリックして選んだものをセルにセットするプログラムを
組まないといけないと思います。
関数だけだと限界があります。
    • good
    • 0
この回答へのお礼

お礼が遅くなり大変申し訳ございません。
時間が無くまだ試していないのですが
詳細なプログラムまで教えていただきありがとうございました。是非参考にします。

お礼日時:2003/07/08 13:34

INDIRECT関数でリストを切り替える方法とかーー


例えば社員の名前の読み方に応じてあ行、か行、さ行に振り分けリストを作成し、それぞれのリストに「あ」「か」「さ」と名前をつけてやります。A1にあ~わを入力するとし、B1の入力規則の「リスト」で
=INDIRECT(A1)
と設定してやります。すると例えば「鈴木」さんだとA1に「さ」と入力してやると(またはA1にも入力規則を設定してやり)、さ行の名前のみがB1のリストボックスに出てきます。(逆に面倒かもーーー)
所属部署を入力する場合は所属部署ごとにリストを振り分けるのもいいですね。
    • good
    • 0
この回答へのお礼

お礼が遅くなり大変申し訳ございません。
アドバイスありがとうございます。
試してみます。

お礼日時:2003/07/08 13:35

すいません、No.2は勘違いです。

取り消します。
    • good
    • 0

 私なら、IME、すなわち、かな漢字変換ソフトで単語登録してしまいますね。



たとえば、「よしだ」の読みで

吉田茂
吉田恭子
芳田元之助

などと名前を登録した社員名入力専用のユーザー辞書を作ります。姓を入力すれば、あとは選択するだけです。
 ユーザー辞書はCSVなどのテキストファイルから一括登録できますし、もちろん追加修正も容易です。Excelのsheetが変わってもすぐ使えますし、ワープロやその他のソフトでも同様に使えます。さらに、省入力・推測変換機能を使えば、入力はもっと楽になります。
    • good
    • 0
この回答へのお礼

マクロや関数の方へ頭がいってしまっていました。
辞書登録も一案ですね。利用者に確認してみます。

お礼日時:2003/06/10 09:53

EXCELに対して設定をかけると、別のシートを持ってきたときには使えませんよね。


社員全員を辞書登録してしまうのが一番簡単で、どんなソフトのときも使えます。
読みを2文字位にすれば、1~2秒で入力できるようになります。
    • good
    • 0
この回答へのお礼

マクロや関数の方へ頭がいってしまっていました。
辞書登録も一案ですね。利用者に確認してみます。

お礼日時:2003/06/10 09:53

#1です。



氏名を漢字入力するのなら、最初の数文字を入力すれば、オートコンプリート機能がはたらいて自動的に表示されないですか?
これでは不満ということですか?
    • good
    • 0
この回答へのお礼

マクロや関数の方へ頭がいってしまっていました。
オートコンプリートは選択を逃してしまうともう再入力の必要があるのでは?
一案ではありますね。ありがとうございます。

お礼日時:2003/06/10 09:52

名前を入力するセルの一つ前に、名前の読み仮名の頭一文字を入力するセルを作って、その列にオートフィルタをかけてやるというのはどうでしょうか?頭一文字の読みをリストから選択すれば、100人ぐらいの人数だったら多くとも4、5人くらいには絞れると思いますので、かなり入力しやすくなるとは思いますが。

    • good
    • 0

列を1列増やすことになりますが、社員一人一人に「コード番号」のようなものをつけ、入力時は数値で入力するようにしたらどうでしょうか。


慣れてくると下手なマウス操作より数値入力のほうが圧倒的に早いです。

数値を入力するセルの隣に、INDEX関数とかVLOOKUP関数などを使って、氏名を表示するようにもできます。
    • good
    • 0
この回答へのお礼

早速ありがとうございます。
入力元のデータ表に、名前しか無い場合、
「山田太郎さんは528番、田中一郎さんは423番・・・」
という風に変換表を見ながら入力しないといけないですね。50人くらいで全員の番号を覚えられれば早いんですが..。

お礼日時:2003/06/09 16:31

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

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

Qエクセル プルダウンの作り方

お世話になります。
エクセルでプルダウンの作り方を教えていただけませんでしょうか?
住所を▼のボタンでクリックしたら【北海道,青森,秋田,岩手・・・】などの選択ができるようにしたいのです。
宜しくお願いします。

Aベストアンサー

メニューから「データ」、「入力規則」、「設定」で「入力値の種類」を「リスト」を選択します。
そうすると「元の値」という表示がでますので、そこで前もって作っておいたリストの範囲を指定します。
多くないのでしたら、そのままそこにカンマで区切って入力しても出来ます。

QエクセルVBA 複数列のリストボックス内を検索して値を複数列表示したい

複数列表示したリストボックス内を絞り込み検索して絞り込み値も検索前と同様の複数列で表示することはできますか?

現場一覧シートのA列に現場名、K列に住所があります。(現場名は増え続けます)
別シートのセルをダブルクリックするとリストボックスを出します。(コード添付なし)
リストボックス内の絞り込み検索後に現場名をダブルクリックすると、アクティブセルに現場名と右隣に住所を表示するようにしたいです。
AddItemの複数列表示の使い方がよく理解できてない気がします。
添付写真は現場名30で絞り込み検索していますが住所列が表示されていません。絞り込み検索後に現場名と住所を表示する方法が分からずに困っております。

もし、リストボックスに複数列表示しなくても現場名ダブルクリック後にアクティブセルに現場名表示、連動して右隣セルに住所を表示が可能であればそれでも解決となります。

VBAをネットで勉強して3ヵ月たちます。
ネット上のコードを参考にして何とか他のブックは仕事で使えるVBAを組み立てましたが、これだけは記述方法が分かりません。
どうかご教授ください。

'*****************************************************
'検索フォームを開いた時の処理
'*****************************************************
Private Sub UserForm_Initialize()
Dim wLastGyou As Long

'最終行番号を取得
wLastGyou = Worksheets("現場一覧").UsedRange.Rows.Count

'リストボックスに「現場一覧」のリストをセット
With lstGenba

'列の指定:11列とする
.ColumnCount = 11

'列幅11列を2列表示にする
.ColumnWidths = "130;0;0;0;0;0;0;0;0;0;100"

'見出しの設定:無し
.ColumnHeads = False

'リストボックスの値にセルA2からK最終行までセット
.RowSource = "現場一覧!A2:k" & wLastGyou

End With

End Sub
'*****************************************************
'検索用のテキストボックス更新後の処理
'*****************************************************
Private Sub txbSerch_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
Dim Obj As Object
Dim wAddST As Variant
Dim wAddress As Variant
Dim wKamoku As Variant
Dim wLastGyou As Long

'最終行番号を取得
wLastGyou = Worksheets("現場一覧").UsedRange.Rows.Count

With Worksheets("現場一覧")

'テキストボックスの値が含まれるセルを検索
Set Obj = Range("現場一覧!A2:K" & wLastGyou).Find( _
What:=txbSerch.Value, _
LookIn:=xlValues, _
lookat:=xlPart, _
MatchByte:=False)

'検索対象がない場合はメッセージを表示
If Obj Is Nothing Then
MsgBox "現場名は存在しません。", _
vbOKOnly + vbInformation, "検索"
Else
'リストボックスをクリア
lstGenba.RowSource = ""

'検索にヒットした先頭のセルのアドレスをセット
wAddST = Obj.Address

'検索の繰り返し処理
Do
'検索にヒットしたセルのアドレスをセット
wAddress = Obj.Address

'検索にヒットしたセルの値を取得
wKamoku = .Range(wAddress).Value

'リストボックスに追加
lstGenba.AddItem wKamoku

'次の検索を行う
Set Obj = Range("現場一覧!A2:A" & wLastGyou).FindNext(Obj)

'最初にヒットしたアドレスと同じ場合は処理を終了
If Obj.Address = wAddST Then Exit Do
Loop
End If
End With
End Sub

'*****************************************************
'リストボックスをダブルクリックした時の処理
'*****************************************************
Private Sub lstGenba_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim wSheetName As Variant

'アクティブなシート名を取得
wSheetName = ActiveSheet.Name

'アクティブなセルにリストボックスの値をセット
With Worksheets(wSheetName)
.Cells(ActiveCell.Row, ActiveCell.Column).Value = lstGenba.List(lstGenba.ListIndex, 0)
.ActiveCell.Offset(0, 1).Value = lstGenba.List(lstGenba.ListIndex, 10)
End With
'フォームを終了する
Unload Me
End Sub

複数列表示したリストボックス内を絞り込み検索して絞り込み値も検索前と同様の複数列で表示することはできますか?

現場一覧シートのA列に現場名、K列に住所があります。(現場名は増え続けます)
別シートのセルをダブルクリックするとリストボックスを出します。(コード添付なし)
リストボックス内の絞り込み検索後に現場名をダブルクリックすると、アクティブセルに現場名と右隣に住所を表示するようにしたいです。
AddItemの複数列表示の使い方がよく理解できてない気がします。
添付写真は現場名30...続きを読む

Aベストアンサー

一例です。

'*****************************************************
'検索用のテキストボックス更新後の処理
'*****************************************************
Private Sub txbSerch_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
Dim Obj As Object
Dim wAddST As Variant
Dim wAddress As Variant
Dim wKamoku As Variant
Dim wLastGyou As Long

'---追加箇所--------------------------------------
Dim i As Long
'リスト表示11項目→3項目(現場名、空白、住所1)
lstGenba.ColumnCount = 3
lstGenba.ColumnWidths = "130;10;100"
'--------------------------------------------------

'最終行番号を取得
wLastGyou = Worksheets("現場一覧").UsedRange.Rows.Count

With Worksheets("現場一覧")

'テキストボックスの値が含まれるセルを検索
Set Obj = Range("現場一覧!A2:K" & wLastGyou).Find( _
What:=txbSerch.Value, _
LookIn:=xlValues, _
lookat:=xlPart, _
MatchByte:=False)

'検索対象がない場合はメッセージを表示
If Obj Is Nothing Then
MsgBox "現場名は存在しません。", _
vbOKOnly + vbInformation, "検索"
Else
'リストボックスをクリア
lstGenba.RowSource = ""

'検索にヒットした先頭のセルのアドレスをセット
wAddST = Obj.Address

'検索の繰り返し処理
Do
'検索にヒットしたセルのアドレスをセット
wAddress = Obj.Address

'--------変更箇所---------------------------------------
i = Obj.Row
'検索にヒットしたセルの値を取得とリストボックスに追加
lstGenba.AddItem .Cells(i, 1)
lstGenba.List(lstGenba.ListCount - 1, 1) = ""
lstGenba.List(lstGenba.ListCount - 1, 2) = .Cells(i, 11)
'--------------------------------------------------------

''検索にヒットしたセルの値を取得
'wKamoku = .Range(wAddress).Value
'
''リストボックスに追加
'lstGenba.AddItem wKamoku

'次の検索を行う
Set Obj = Range("現場一覧!A2:A" & wLastGyou).FindNext(Obj)

'最初にヒットしたアドレスと同じ場合は処理を終了
If Obj.Address = wAddST Then Exit Do
Loop
End If
End With
End Sub

'*****************************************************
'リストボックスをダブルクリックした時の処理
'*****************************************************
Private Sub lstGenba_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim wSheetName As Variant

'アクティブなシート名を取得
wSheetName = ActiveSheet.Name

'--------------変更箇所-----------------------------------------------
'アクティブなセルにリストボックスの値をセット
With Worksheets(wSheetName)
.Cells(ActiveCell.Row, ActiveCell.Column).Value = lstGenba.List(lstGenba.ListIndex, 0)
.Cells(ActiveCell.Row, ActiveCell.Column + 1).Value = lstGenba.List(lstGenba.ListIndex, 2)
End With
'--------------------------------------------------------------------------

'アクティブなセルにリストボックスの値をセット
'With Worksheets(wSheetName)
'.Cells(ActiveCell.Row, ActiveCell.Column).Value = lstGenba.List(lstGenba.ListIndex, 0)
'.ActiveCell.Offset(0, 1).Value = lstGenba.List(lstGenba.ListIndex, 10)
'End With
'フォームを終了する
Unload Me
End Sub

一例です。

'*****************************************************
'検索用のテキストボックス更新後の処理
'*****************************************************
Private Sub txbSerch_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
Dim Obj As Object
Dim wAddST As Variant
Dim wAddress As Variant
Dim wKamoku As Variant
Dim wLastGyou As Long

'---追加箇所--------------------------------------
Dim i As Long
'リスト表示11項目→3項目(現場名、空白、住所1)
lstG...続きを読む

Qエクセルでプルダウンメニューの作り方

  エクセルの画面で、よく三角形を逆さまにした形をクリックするといくつかメニューが出てき、どれかを選べるようになっていますが、その作り方を教えてください。
 会社で人事を担当していますが、三角形(プルダウンボタン)をクリックすると社員氏名一覧が表示され、そこから選択できるようにしたいのです。
 しばらく自力でいろいろやってみましたが、さっぱり見当がつかず、どうやればいいのか分かりませんでした。よろしくお願いします。

Aベストアンサー

こんばんは!
当方使用のExcel2003での一例です!

↓の画像のようにSheet2に名簿表を作成しておきます。
画像ではSheet2のA2セル以降を範囲指定 → 名前ボックスに仮に「名簿」と入力しOK
これで範囲指定したセルが「名簿」と名前定義されましたので、

Sheet1のリスト表示させたいセルを範囲指定 → メニュー → データ → 入力規則
→ リスト → 「元の値」の欄に
=名簿
としてOK

これでSheet1のセルをアクティブにすると右側に下向き▼が表示されますので、そこをクリック!
これで希望に近い形にならないでしょうか?
Excel2007の場合は↓のURLが参考になるかもしれません。

http://www.eurus.dti.ne.jp/~yoneyama/Excel2007/excel2007-ny_kis2.html

尚、同一Sheetに「名簿表」を作成する場合は名前定義する必要はなくて
「元の値」の右側の四角をクリックし、リスト表示したいセルをそのまま範囲指定すればOKです。

以上、お役に立てば良いのですが・・・m(_ _)m

こんばんは!
当方使用のExcel2003での一例です!

↓の画像のようにSheet2に名簿表を作成しておきます。
画像ではSheet2のA2セル以降を範囲指定 → 名前ボックスに仮に「名簿」と入力しOK
これで範囲指定したセルが「名簿」と名前定義されましたので、

Sheet1のリスト表示させたいセルを範囲指定 → メニュー → データ → 入力規則
→ リスト → 「元の値」の欄に
=名簿
としてOK

これでSheet1のセルをアクティブにすると右側に下向き▼が表示されますので、そこをクリック!
これで希望に近い形にならない...続きを読む

QExcelVBA でリストリストボックスに列見出しをコーディングでつける

エクセルVBAのフォームにリストボックスを作り、データーベースから読み出したデータを表示させています。

この時、各列にテーブル名とはちがう列名をつけたいのですが、シートに記述するのではなく、コーディングでつける事は出来ませんか?

ControlTipTextに「test1;test;test3;」と指定してみたりしましたが、駄目でした。

どなたかご教授、あるいは出来ません、シートに隠しか方法はありません、と全否定をしてください。

Aベストアンサー

Wendy02 です。配列で入れる方法を考えてみましたが、できませんでした。

結局、他の方法としては、ListBox の 上に、白のLabel をそれぞれのColumnにあわせて、表示するぐらいしか、思いつきません。(これは、論外でしょうね)

列見出し(フィールド)は、もともと、Excelのワークシートの、データベース用の仕様のひとつだから、Rangeオブジェクトでしか、ListBox の Header に入れることは、出来ないようです。

Qエクセル(Excel) 納品書の作り方【画像修正版

昨日http://oshiete.goo.ne.jp/qa/7348426.htmlで質問させていただき、詳しくご回答いただき少し進んだのですが、状況が変わったので改めて質問させていただきます。

■エクセル(Excel)で納品書の作成をしています。
シート1に納品書、シート2に商品マスタ(一覧)を作っていて、シート2の一覧を反映させて
納品書に番号を打ち込むだけで、商品名・単価までが出るシステムを作りたいのですが、
昨日のご回答の中の「VLOOKUP」?を入れて、自分なりにマス目の数字を変えてやってみたのですが
反映されずN/?のようなエラーになってしまいます。

※画像が見にくかったのでシート<CENTER></CENTER>だけにしました。

1、上記のように、シート2との関連付けの係数を、写真の場合の数字で教えてください。

2、合計と、合計から20%を引いた数値を割り出す関数も、写真の数字で御願いします。

宜しくご教授お願い致します。

Aベストアンサー

こんばんは!
前回投稿した者です。

当方もかなり古い(人間も古い!なぁ~んちゃって!)Excel2003を使用しています。
↓の画像のようにSheet2にデータを作成しておきます。

#N/A というエラーは、「検索値」がない!ということですので
お示しの画像のB列にSheet2のA列にないデータを入力するとそういったエラーが表示されます。

画像のセル配置ですと
C4セルに
=IF($B4="","",VLOOKUP($B4,Sheet2!$A:$C,COLUMN(B1),0))
(「$」マークの位置に気を付けてください)
という数式を入れD4セルまでオートフィルでコピー!
そのまま最後の24行目までコピーしておきます。

F4セルには
=IF(COUNTBLANK(B4:E4),"",D4*E4)
という数式を入れ、F24までオートフィルでコピー!

これでB列に商品番号を入力すればSheet2のデータが反映され、
E列に数量を入力でF列に金額が表示されると思います。

最後に合計金額のF26セルは
=IF(COUNT(F4:F24),SUM(F4:F24),"")
手数料のF27セルは
=IF(F26="","",F26*0.2)

これで何とか形にならないでしょうか?

※ 振込金額の欄は不明ですので手を付けていません。

参考になりますかね?m(_ _)m

こんばんは!
前回投稿した者です。

当方もかなり古い(人間も古い!なぁ~んちゃって!)Excel2003を使用しています。
↓の画像のようにSheet2にデータを作成しておきます。

#N/A というエラーは、「検索値」がない!ということですので
お示しの画像のB列にSheet2のA列にないデータを入力するとそういったエラーが表示されます。

画像のセル配置ですと
C4セルに
=IF($B4="","",VLOOKUP($B4,Sheet2!$A:$C,COLUMN(B1),0))
(「$」マークの位置に気を付けてください)
という数式を入れD4セルまでオートフィルで...続きを読む

Qexcelのリストボックスで選択した項目をアクティブセルに入力方法

もしかしたら既出かもしれませんが・・・
フォームコントロールのリストボックスで入力範囲の指定したリストをリンクするセルをワークシート上にクリックしたセルに入力させる方法はありますか?
もし、不可能でしたら、ActiveXコントロールのリストボックスでも構いません。よろしくお願いいたします。

Aベストアンサー

そのリストボックスの、コードの表示で
Private Sub ListBox1_Click()
ActiveCell = ListBox1.List(ListBox1.ListIndex)
End Sub
と入れるだけ。
コントロールツールボックスのコントロールを、ワークシートに直接
貼り付けた場合。
WEBや解説書で、ListboxとかListindexなど調べましたか。

Qエクセル(Excel) 納品書の作り方【改めて】

昨日http://oshiete.goo.ne.jp/qa/7348426.htmlで質問させていただき、詳しくご回答いただき少し進んだのですが、状況が変わったので改めて質問させていただきます。

■エクセル(Excel)で納品書の作成をしています。
シート1に納品書、シート2に商品マスタ(一覧)を作っていて、シート2の一覧を反映させて
納品書に番号を打ち込むだけで、商品名・単価までが出るシステムを作りたいのですが、
昨日のご回答の中の「VLOOKUP」?を入れて、自分なりにマス目の数字を変えてやってみたのですが
反映されずN/?のようなエラーになってしまいます。

※画像が貼り付けてあります。商品名は1番以外伏せさせていただいています。
くっつけてありますが、左側がシート1・右側がシート2です。

1、上記のように、シート2との関連付けの係数を、写真の場合の数字で教えてください。

2、合計と、合計から20%を引いた数値を割り出す関数も、写真の数字で御願いします。

宜しくご教授お願い致します。

Aベストアンサー

画像がいまいちよく見えないのですが、納品書の項目は左から、No、商品番号、商品名、単価、数量、金額でいいのでしょうか(名前は多少違っていても意味があっていればもんだいないです)

でしたら、
C1セルに=IF(ISBLANK(B2),"",VLOOKUP(B2,Sheet2!$A$2:$C$200,2,FALSE))
D1セルに=IF(ISBLANK(B2),"",VLOOKUP(B2,Sheet2!$A$2:$C$200,3,FALSE))
E1セルは空白で
F1セルに=IF(D2="","",D2*E2)
といれて、C1からF1までをコピーしてその下の行にタテに貼り付ければ出来ますよ。
おそらくエラーが出たのは、コピーしたときにVLOOKUP関数の最初のセルの指定がずれてしまっているのでは無いかと思いますよ。     

QEXCEL マクロ リストボックスよりシート名を選択してシートを選択

こんばんは.
エクセルを使って備品の管理システムを構築したいと考えております.
マクロを使います.
VBAは初心者です.

・備品を20種類ほどに分類し,シートも同様に20作りました.
・ウィンドウを2つに分割し,上下に並べています.
・上ウィンドウの最初のシート(シート名:備品一覧)のB2セルにリストボックスを設け,そのリストで20種の備品の中から一つを選択できるようにしています.
・リストボックスの側にマクロ対応のボタンを設置しております

やりたいこととしては・・・
『上ウィンドウのリストボックスで備品を選択し,ボタンをクリックすることによって,下ウィンドウでその選択した備品名のシートに移動する』
です.

私が組んでみたマクロは下記です.
----------------
Sub 備品を選択  

  Dim sheetname As String

'リストボックスからシート名を取得する
sheetname = Range("B2").Value

'下ウィンドウをアクティブにしてシートを選択する
Windows(2).Activate
Worksheets("sheetname").Select

End Sub
------------------

エラーは,『Worksheets("sheetname").Select』のところで
【実行値エラー'9' インデックスが有効範囲にありません.】

参考書やグーグルで調べてもわかりませんでした.
ご教授いただければ幸いです.
よろしくお願い致します.

こんばんは.
エクセルを使って備品の管理システムを構築したいと考えております.
マクロを使います.
VBAは初心者です.

・備品を20種類ほどに分類し,シートも同様に20作りました.
・ウィンドウを2つに分割し,上下に並べています.
・上ウィンドウの最初のシート(シート名:備品一覧)のB2セルにリストボックスを設け,そのリストで20種の備品の中から一つを選択できるようにしています.
・リストボックスの側にマクロ対応のボタンを設置しております

やりたいこととしては・・・
『上ウィン...続きを読む

Aベストアンサー

この辺の問題ではないでしょうか?

  ×Worksheets("sheetname").Select
  ○Worksheets(sheetname).Select

Qエクセル2007でプルダウンで選んだものに反応

Excel2007でプルダウンで選んだものに反応して隣のセルが自動入力される方法(エクセル2007)
A1をプルダウンで「猫」「犬」から選べるようにし、「猫」を選んだ場合B1に自動に「111」が、「犬」を選んだ場合B1に自動に「222」と入力されるようにしたいです。
ご教授の程、宜しくお願いします。

Aベストアンサー

VLOOKUP関数での方法です。
(1)別シートに入力文字列と対応コード表を作成。(仮にSheet2のA:B列範囲で順不同)
(2)B1に=IF(COUNTIF(Sheet2!A:A,A1),VLOOKUP(A1,Sheet2!A:B,2FALSE),"")を設定
   入力文字列が存在しない場合は空白としています。

Q【エクセル】同じ列に入力済みの文字をリストから選んで入力

同じ列に入力済みのデータと同じ文字を入力するとき、「Alt」キーを押しながら「↓」キーを押せばリストを表示できまが、これをプルダウン[▼]で簡単に表示できる方法はありますか?
よろしくお願いいたします。

Aベストアンサー

2列余分なワーク列を使いますが、下記をやってみてください。(imogasi方式)
どこでも使わない列を2列考える。今はやりやすいようにC,D列とします。
A列にデータ入力するとして、C2に
=IF(COUNTIF($A$1:A2,A2)=1,MAX($C$1:C1)+1,"")と入れて下方向に式を複写。
D2に=OFFSET($A$2,MATCH(ROW()-1,$C$2:$C$100,0)-1,0)と入れて下方向に式を複写。
C,D列を書式-列-非表示
A列にセル範囲指定して、データ-入力規則ーリストーリストのセル範囲をD列のD2:D100とかセル範囲を指定。
C列で出ている最大数を超えるD列の行には#N/Aが出ますが、これがいやなら、=IF(ISERROR(X),””,X)としてエラーの表示がでないようにできます。X部分はD列の上記の式で置き換えるのです。

A列の重複を省いた文字列が、ドロップダウンにでます。
みつからない場合は、キーボード手入力で入力できます。


人気Q&Aランキング

おすすめ情報