- ベストアンサー
ユーザーフォームを作成しました
- 自社の情報のユーザーフォームを作成しました。Sheet1にマクロボタンを配置しています。
- ユーザーフォームには自社の情報が表示されます。Sheet2に項目名と情報が入力されています。
- 現在、Sheet2で自社情報を閲覧していますが、Sheet1でフォーム表示したいと考えています。アドバイスをお願いします。
- みんなの回答 (2)
- 専門家の回答
関連するQ&A
- エクセルVBA ユーザーフォームからシートの操作
エクセルでユーザーフォームを用いて 顧客管理データーベース入力フォームを作成しています。 ユーザーフォーム上で入力した値を複数のシートに またがってデーターを入力していくつもりです。 それで困っていることなのですが、 ユーザーフォームを起動したときに、それぞれの シートの空白の場所を変数で記憶させているのですが 以下に示す部分でエラーが発生します。 エラーの原因は、アクティブシートでないので セルを取得できないようなのですが、アクティブでない 場合のselectに変わるやり方ってありませんか? -----sheet1がアクティブな状態で-------------------------------- Dim myRowNo As Integer Dim myRowNoS As Integer --------------------------------------------------------------- Private Sub MyRowNo1() myRowNo = 4 Sheets("sheet1").Cells(myRowNo, 1).Select Do Until ActiveCell.Value = "" myRowNo = myRowNo + 1 Sheets("sheet1").Cells(myRowNo, 1).Select Loop End Sub ---------------------------------------------------------------- Private Sub MyRowNo2() myRowNoS = 4 Sheets("sheet2").Cells(myRowNoS, 1).Select <<<<<<<<エラー箇所 Do Until ActiveCell.Value = "" myRowNoS = myRowNoS + 1 Sheets("sheet2").Cells(myRowNoS, 1).Select Loop End Sub --------------------------------------------------------------- Private Sub OpenButton2_Click() 'ユーザーフォームボタンをクリック Call MyRowNo1 Call MyRowNo2 End Sub --------------------------------------------------------------- MyRowNo1と2の間に「Worksheets("sheet2").Select」を入れる と動くようなのですが、呼び出さずに動かす方法ってありますか? 宜しくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- エクセル ユーザーフォーム ワークシート表示
現在,マクロを勉強中です。 ユーザーフォームに,3つのラベルを設定し,それぞれのラベルをクリックすると,「初期設定」または「4月」または「5月」のシートを表示し,ユーザーフォームは消すというものを試みています。 シート名は,「初期設定」「4月」「5月」です。 1つめのラベルをクリックしたときに実行されるコードは Sub Label1_Click() Sheets("初期設定").Activate Unload Me End Sub で設定したのですが,ユーザーフォームが消えるのですが,何のシートも表示されません。 実行したいことだけを考えると,ハイパーリンクでも可能なのですが,勉強もかねて質問させていただきたいと思います。 どこか修正すべきコードがありましたらご教授くださるとありがたいです。
- ベストアンサー
- Excel(エクセル)
- 隠していたユーザーフォームを再び表示したい
ExcelVBA をExcel2007で苦戦している初心者です。 マクロ記載のAブックとBブックを使っています。 Aブックのユーザーフォーム「表紙」にあるボタンをクリックして Private Sub CommandButton11_Click() 表紙.Hide Workbooks.Open Filename:=ThisWorkbook.Path & "\改善案.xlsm" Sheets(1).Select End Sub Bブック(改善案)に飛び、作業後これを閉じ、Aブックに戻したいです。 Aブックは、まだ閉じてはいません。 同時に、ユーザーフォーム「表紙」を再表示したいです。 Private Sub CommandButton2_Click() Unload UserForm1 Application.DisplayAlerts = False ThisWorkbook.Close Application.DisplayAlerts = True 表紙.show End Sub すると次のエラーが表示され 「コンパイルエラー 変数が定義されていません」 表紙.showの表紙が反転表示されます。 Aブックに戻ったときにユーザーフォーム「表紙」を表示するには どうしたらよろしいでしょうか。よろしくお願いします。
- ベストアンサー
- Visual Basic
- フォームでユーザが入力したシート名を選択したい
初歩的な質問ですいません。教えてください! 「sheetnameinput」フォーム Private Sub NextButton2_Click() sheetname = sheetname.Text このようにフォームを作成し、ユーザにシート名を入力させて、マクロの中でそのシート名を指定(選択)したいと思っています。 続きとして Dim sn As Variant Set sn = sheetnameinput.sheetname Sheets("sn").Select と作成してみたのですが 「インデックスが有効範囲にありません(エラー9)」 のメッセージが出てしまいます。 確かにその名前のシートはエクセル内に存在しているのですが、なぜエラーとなるのでしょう?そもそも指定の仕方が間違っているのでしょうか? みなさん、教えてください。
- ベストアンサー
- Visual Basic
- ユーザーフォームの使い方、データ取得で困ってます。
'作業用シート Private Sub CommandButton1_Click() Dim shinaName As String Dim shinaNo As String Dim sName As String Dim cName As String shinaName = InputBox("商品名を入力") shinaNo = InputBox("商品Noを入力") shinaDiv = InputBox("分類") sName = shinaName cName = shinaNo dName = shinaDiv 'ひな形シートをコピーし、シート名を商品名に Sheets("sheetnew").Select Sheets("sheetnew").Copy Before:=Sheets(1) Sheets("sheetnew (2)").Name = sName '各セルに商品名と商品コードを Worksheets(sName).Activate With ActiveSheet .Range("A2") = sName .Range("A3") = cName .Range("A4") = dName End With End Sub 構文が正しいのかわかりませんが、ビギナーなりに作ってみました(^^;; 作業用シートのボタンをクリックし、入力情報をもとに シートを新規追加していくのですが、この作業をInputBoxではなく、 ユーザーフォームを呼び出して、入力作業を1回で終わらせたいのです。 ユーザーフォーム1()内に下記5項目を作りました テキストボックス1() '商品名 テキストボックス2() '商品No リストボックス1() '分類1~3 登録ボタン() キャンセル() コマンドボタン1をクリックし、ユーザーフォーム呼び出しはOKです。 フォーム内のキャンセルボタンも機能します。 登録ボタンをクリックすると、どうもテキスト、リストボックス内容が 読み込めないみたいでエラーします。 sName = shinaName cName = shinaNo dName = shinaDiv このインプットボックスのように、変数にすると構文的(宣言の仕方?)に 駄目なのでしょうか? ユーザーフォームを見真似で作ってみたのですが、 どこに、どうセットして、どう呼び出して? また、入力されたデータをどう取得して、構文に組み込むのか? 、、、なんかこの辺りがゴチャゴチャしてわかりません。 追って説明して頂けると助かります、構文の作り方教えてください。
- ベストアンサー
- オフィス系ソフト
- ユーザーフォームを表示されないようにしたい
Vista excel2007 でマクロ作成中の超初心者です。 A、B、Cのブックがあります。Bブックのみマクロをワークシートに貼り付けています。 1)Aブック(マクロ記録用)の中にある、Aコマンドボタンを押すと BブックのBシートにジャンプします。ジャンプと同時に、Bユーザーフォームを 表示しています。 2)そしてBシートには、フォームコントロールを貼り付けており、ここをクリックするとCブックCシートに飛びます。 3)ところが、CシートにはBユーザーフォームが残ったままです。このフォームを 表示されないようにしたいのです。 4)Bシートのフォームコントロールには、次のコード記述をしてあります。 Sub Cブック Cシートへ() Dim wb As Workbook Dim ws As Worksheet Dim sh As Worksheet Dim i As Long ChDrive ThisWorkbook.Path ChDir ThisWorkbook.Path On Error Resume Next '開いて作業中の場合。 Set wb = Workbooks("CCC.xls") On Error GoTo 0 If wb Is Nothing Then Set wb = Workbooks.Open(ThisWorkbook.Path & "\CCC.xls") End If Worksheets(1).Select End Sub どうかよろしくお願いします。
- ベストアンサー
- Visual Basic
- エクセルVBA ユーザーフォームの終了について
エクセルVBAでユーザーフォームを作成しています。 コマンドボタンにVBAマクロを割り当てしているのですが 思うように動いてくれないので質問します。 コマンドボタンをクリックしたら望む動作 1、ワークシートを選択 2、その後、ユーザーフォームを消す。 と言う動作にしたいのですが、2の ユーザーフォームを消す方法、書き方が分かりません どなたか教えていただけないでしょうか 1の動作は以下のように書いています。その後の書き方を お願いします。 Private Sub CommandButton8_Click() ブック名 = "VBA演習" シート名 = "sheet1" Workbooks(ブック名 & ".xls").Worksheets(シート名).Activate End Sub (ユーザーフォームの名前は"テストフォーム"としてます)
- ベストアンサー
- オフィス系ソフト
- Excel ユーザーフォームの入力値をシートに転記
Excelでユーザーフォームを作りました。 ユーザーフォームには、テキストボックスを2個、ボタンを1個("記入"という文字が入っています)置いてあります。 テキストボックスに入れた数値をSheet1のセル"C24","C25"に転記したいので、ユーザーフォームのコードを次のようにしましたが、エラーメッセージは出ないかわりに何も動いてくれません。 「どこ」と「なに」が違いどうするのが正しいのか教えて下さい。よろしくお願いします。 Private Sub Tbox1_Change() a = Tbox1.Value End Sub ---------------------------- Private Sub Tbox2_Change() b = Tbox2.Value End Sub ---------------------------- Sub 記入Button_Click() '入力値をSheet1に転記 Dim a As Range Dim b As Range Sheets("Sheet1").Select Set a = Range("C24") Set b = Range("C25") End Sub
- ベストアンサー
- オフィス系ソフト
- エクセルのVBユーザーフォームがうまく組めません
会社でエクセルを使ってデータをまとめているのですがVBのユーザーフォームで作ろうとしています。今困っていることはoptionbuttonを4個使い選択式にし選択したら「OK」buttonを押すことで各optionbuttonに対応したsheetへ飛ぶようにしたいのですがうまくいきません。 現状ですが Private Sub CommandButton1_Click() dim str as string str=optionbutton1.caption select case str case "****" sheets("1234").select ・ ・ ・ end select End Sub としています。 間違いがありましたら指摘してください。 ちなみに3日前に始めてVBを教えてもらいました。
- 締切済み
- その他(ITシステム運用・管理)
- エクセル2007マクロ シート間のセルコピー
[Sheet1]にあるデータを[Sheet2]にコピーするマクロボタンを[Sheet2]に作りたいのですが、マクロがよく分からないので、「マクロの記録」で作成してみました。 Sub siken() ' ' siken Macro ' ' Sheets("Sheet1").Select Range("A1").Select Selection.Copy Sheets("Sheet2").Select Range("A1").Select ActiveSheet.Paste Sheets("Sheet1").Select Range("B3").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet2").Select Range("B3").Select ActiveSheet.Paste Sheets("Sheet1").Select Range("B6:D6").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet2").Select Range("B6").Select ActiveSheet.Paste End Sub (実際はもっと多くのセルをコピーします) マクロを実行すると、ちゃんとコピーできるのですが、セルをコピーする都度[Sheet1]と[Sheet2]が交互に表示されます。 コピー元の[Sheet1]を表示させずにマクロを実行させるにはどのようにしたらよいのでしょうか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
お礼
ご指摘のように張り付けミスでした。 Sheets("基本情報").Selectでなく Sheets("Sheet2").Selectです。 シートとの間でのデータの受け渡しが見られませんが・・・ すみませんが 基本はどうしたらよいですか?