Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9205 / 13644 ツリー ←次へ | 前へ→

【28577】教えてください tbtk 05/9/9(金) 14:10 質問[未読]
【28578】Re:UserFormのTextBox入力後に特定セルを横... かみちゃん 05/9/9(金) 14:22 発言[未読]
【28579】Re:UserFormのTextBox入力後に特定セルを横... tbtk 05/9/9(金) 14:30 質問[未読]
【28580】Re:UserFormのTextBox入力後に特定セルを横... かみちゃん 05/9/9(金) 14:37 発言[未読]
【28581】Re:UserFormのTextBox入力後に特定セルを横... tbtk 05/9/9(金) 14:44 発言[未読]
【28582】Re:UserFormのTextBox入力後に特定セルを横... かみちゃん 05/9/9(金) 14:50 発言[未読]
【28583】Re:UserFormのTextBox入力後に特定セルを横... tbtk 05/9/9(金) 14:56 発言[未読]
【28584】Re:UserFormのTextBox入力後に特定セルを横... かみちゃん 05/9/9(金) 15:06 発言[未読]
【28585】Re:UserFormのTextBox入力後に特定セルを横... tbtk 05/9/9(金) 15:27 発言[未読]
【28586】Re:UserFormのTextBox入力後に特定セルを横... かみちゃん 05/9/9(金) 15:34 発言[未読]
【28588】Re:UserFormのTextBox入力後に特定セルを横... tbtk 05/9/9(金) 15:41 お礼[未読]
【28660】Re:UserFormのTextBox入力後に特定セルを横... tbtk 05/9/12(月) 9:48 質問[未読]
【28690】Re:UserFormのTextBox入力後に特定セルを横... かみちゃん 05/9/12(月) 23:57 回答[未読]
【28703】Re:UserFormのTextBox入力後に特定セルを横... tbtk 05/9/13(火) 9:18 発言[未読]
【28708】Re:UserFormのTextBox入力後に特定セルを横... tbtk 05/9/13(火) 11:39 お礼[未読]
【28717】Re:UserFormのTextBox入力後に特定セルを横... tbtk 05/9/13(火) 14:45 質問[未読]
【28754】Re:UserFormのTextBox入力後に特定セルを横... かみちゃん 05/9/13(火) 22:57 回答[未読]
【28762】Re:UserFormのTextBox入力後に特定セルを横... tbtk 05/9/14(水) 8:34 お礼[未読]

【28577】教えてください
質問  tbtk  - 05/9/9(金) 14:10 -

引用なし
パスワード
   セルのE1に車種、セルのE2に車型と入力してあり
ユーザーフォームのテキストボックスにデータを入力すると
セルのE3に車種データ、セルのE4に車型データが入力されるようになっているのですが
セルのF1には発注数という項目があります。
車種、車型データは最大でセルのAZの位置まで入力出来るようになっているのですが
入力すると発注数の項目があるため入力されません。
データを入力すると発注数の項目がFの位置から一つ横の行にずれるという形にしたいのですが、どのようにしたらいいでしょうか?
分かりにくい説明ですが、よろしくお願いします。

【28578】Re:UserFormのTextBox入力後に特定セルを...
発言  かみちゃん  - 05/9/9(金) 14:22 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>データを入力すると発注数の項目がFの位置から一つ横の行にずれるという形にしたい

UserFormのTextBoxに入力したら、1列挿入して、F3、F4に入力して、G1に発注数
を表示したいということでしょうか?

  E      F
1 車種    発注数
2 車型
3 車種データ
4 車型データ

      ↓ UserFormのTextBoxに入力するとこんな感じ?(F列を挿入)

  E       F     G
1 車種          発注数
2 車型
3 車種データ 車種データ
4 車型データ 車型データ

      ↓ UserFormのTextBoxに入力するとこんな感じ?(G列を挿入)

  E       F      G     H
1 車種                発注数
2 車型
3 車種データ 車種データ 車種データ
4 車型データ 車型データ 車型データ

【28579】Re:UserFormのTextBox入力後に特定セルを...
質問  tbtk  - 05/9/9(金) 14:30 -

引用なし
パスワード
   かみちゃんさん こんにちわ
かみちゃんさんの書いてある処理がしたい形です。
入力のコード記述は現在この形です。
Public Sub textadd()
  sheet_set
  With addform
  text1 = .TextBox1
  text2 = .TextBox2
  msg1 = MsgBox("入力してもいいですか?", vbYesNo)
  If text1 = "" Or text2 = "" Then
        MsgBox ("車種、または車型を入力してください")
        Unload addform
        Exit Sub
    End If
  
  If msg1 = vbYes Then
        cnta = WorksheetFunction.CountA(ws2.Range("c1:az1"))
        tcnta = WorksheetFunction.CountA(ws3.Range("e4:az4"))
        cnta = cnta + 3
        tcnta = tcnta + 5
        
    With ws2
        .Cells(1, cnta).Value = text1
        .Cells(2, cnta).Value = text2
    End With
  With ws3
        
        .Cells(3, tcnta).Value = text1
        .Cells(4, tcnta).Value = text2
  End With
     Unload addform
     Else
        .TextBox1 = ""
        .TextBox2 = ""
    End If
  End With
End Sub
▼かみちゃん さん:
>こんにちは。かみちゃん です。
>
>>データを入力すると発注数の項目がFの位置から一つ横の行にずれるという形にしたい
>
>UserFormのTextBoxに入力したら、1列挿入して、F3、F4に入力して、G1に発注数
>を表示したいということでしょうか?
>
>  E      F
>1 車種    発注数
>2 車型
>3 車種データ
>4 車型データ
>
>      ↓ UserFormのTextBoxに入力するとこんな感じ?(F列を挿入)
>
>  E       F     G
>1 車種          発注数
>2 車型
>3 車種データ 車種データ
>4 車型データ 車型データ
>
>      ↓ UserFormのTextBoxに入力するとこんな感じ?(G列を挿入)
>
>  E       F      G     H
>1 車種                発注数
>2 車型
>3 車種データ 車種データ 車種データ
>4 車型データ 車型データ 車型データ

【28580】Re:UserFormのTextBox入力後に特定セルを...
発言  かみちゃん  - 05/9/9(金) 14:37 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>入力のコード記述は現在この形です。
>Public Sub textadd()
>  sheet_set

sheet_set は何ですか?

>    With ws2



>  With ws3

これらは、どこで、何を設定してあるのでしょうか?

なんとなくはわかるのですが、以前のご質問にも書いたとおり、ご自分のコード
が他人の環境でも確認できるようなコードを提示していただきたいと思います。
そうでないと、推測で事が進んでしまい、誤解を招くことが多くなります。

【28581】Re:UserFormのTextBox入力後に特定セルを...
発言  tbtk  - 05/9/9(金) 14:44 -

引用なし
パスワード
   すみませんでした
Public Sub sheet_set()
  Set ws2 = Worksheets("Sheet2")
  Set ws3 = Worksheets("Sheet3")
End Sub
sheet_setはワークシートのセットをしています

▼かみちゃん さん:
>こんにちは。かみちゃん です。
>
>>入力のコード記述は現在この形です。
>>Public Sub textadd()
>>  sheet_set
>
>sheet_set は何ですか?
>
>>    With ws2
>
>と
>
>>  With ws3
>
>これらは、どこで、何を設定してあるのでしょうか?
>
>なんとなくはわかるのですが、以前のご質問にも書いたとおり、ご自分のコード
>が他人の環境でも確認できるようなコードを提示していただきたいと思います。
>そうでないと、推測で事が進んでしまい、誤解を招くことが多くなります。

【28582】Re:UserFormのTextBox入力後に特定セルを...
発言  かみちゃん  - 05/9/9(金) 14:50 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>sheet_setはワークシートのセットをしています

はい。想像とおりでした。
今、コードをそのまま貼り付けて検証していますが、以下の部分の処理がご質問の
内容に沿っていないように思えて、理解に苦しんでいます。
何をしているのか、仕様を詳しく教えていただけますか?
   cnta = WorksheetFunction.CountA(ws2.Range("c1:az1"))
   tcnta = WorksheetFunction.CountA(ws3.Range("e4:az4"))

要は、textaddを実行したときに、各種入力チェックがOKのときは、最終列
(発注数が表示されている列)に1列挿入するだけなのですが・・・

※それと、発言の際に、引用は、最低限で結構です。
 スレッドを見ればすべてわかりますから。

【28583】Re:UserFormのTextBox入力後に特定セルを...
発言  tbtk  - 05/9/9(金) 14:56 -

引用なし
パスワード
   このコードなんですがこれでRangeで選択されている範囲のデータが入力されている数を数えて、cnta、tcntaに格納しています。>
>   cnta = WorksheetFunction.CountA(ws2.Range("c1:az1"))
>   tcnta = WorksheetFunction.CountA(ws3.Range("e4:az4"))

【28584】Re:UserFormのTextBox入力後に特定セルを...
発言  かみちゃん  - 05/9/9(金) 15:06 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>このコードなんですがこれでRangeで選択されている範囲のデータが入力されてい
>る数を数えて、cnta、tcntaに格納しています。
>>   cnta = WorksheetFunction.CountA(ws2.Range("c1:az1"))
>>   tcnta = WorksheetFunction.CountA(ws3.Range("e4:az4"))

それは、十分わかるのですが、

>セルのE1に車種、セルのE2に車型と入力してあり
>ユーザーフォームのテキストボックスにデータを入力すると
>セルのE3に車種データ、セルのE4に車型データが入力されるようになっているのですが
>セルのF1には発注数という項目があります。

という、ご質問内容からして、C1:D1に何か入っているのか?
あと、車種、車型、車種データ、車型データの関係がよくわからず、
私が提示したイメージとあっているのか?という疑問があります。
また、Sheet2とSheet3にそれぞれのセルに反映させようとしているようですし、
私自身がよくわからなくなってきています。

申し訳ありませんが、再度、仕様を「具体的に」説明していただけないでしょうか?

【28585】Re:UserFormのTextBox入力後に特定セルを...
発言  tbtk  - 05/9/9(金) 15:27 -

引用なし
パスワード
   仕様としてはSheet2とsheet3にデータを反映させる形になります。
ユーザーフォームの車種、車型という二つのテキストボックスに入力をすると
それがそれぞれ指定したセルに入力される形になります。
【Sheet2】のイメージ
  B  C  D  E
1 車種
2 車型
◆コマンドボタン◆
コマンドボタンが設置してありクリックするとユーザーフォームが起動します
という形で入力をしていくとC1とC2にデータが入る形です、その後はさっきのワークシート関数COUNTAで一個ずつずらしてD1とD2、E1とE2という感じでデータが入力されていきます
【Sheet3】
Sheet3のイメージは最初にかみちゃんさんが推測していたのと変わりません
ただ、自分の説明不足ですが申し訳ないのですが
sheet3のC1とD1には品番と品名という項目があります。
仕様としては今現在はこのような感じです。

【28586】Re:UserFormのTextBox入力後に特定セルを...
発言  かみちゃん  - 05/9/9(金) 15:34 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>仕様としてはSheet2とsheet3にデータを反映させる形になります。

そういう話は、初めて聞いたような気がします。

>【Sheet2】のイメージ
>  B  C  D  E
>1 車種
>2 車型

そもそものご質問の「発注数」というのは、Sheet2、Sheet3のどちらにあるのですか?
私も、仕様がわからないなりに、コードを実行してみましたが、
やはり、textaddを実行するたびに、「発注数」が表示されている列に対して、
1列挿入すればいいだけのような気がしますが、「マクロの記録」などで記録して
コードがわかりませんか?

【28588】Re:UserFormのTextBox入力後に特定セルを...
お礼  tbtk  - 05/9/9(金) 15:41 -

引用なし
パスワード
   すみません。
マクロの記録でやってみたらすぐに出来ました。
いろいろご迷惑をおかけしましたが、ありがとうございました。

【28660】Re:UserFormのTextBox入力後に特定セルを...
質問  tbtk  - 05/9/12(月) 9:48 -

引用なし
パスワード
   すみません、出来たと思っていたのですがうまく動作していないことが
分かりました。
私が記述したコードが
Columns("f:f").Select
    Selection.Insert Shift:=xlToRight
なのですが、3回目にデータを入力したときに2回目に入力したデータが
消えてしまいます。
("f:f")ではなく発注数と入力されている行の横という指定はできないのでしょうか?

【28690】Re:UserFormのTextBox入力後に特定セルを...
回答  かみちゃん  - 05/9/12(月) 23:57 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>("f:f")ではなく発注数と入力されている行の横という指定はできないのでしょうか?

よくわかりませんが、「発注数」という列に対して1列挿入したら、「発注数」
の列が右にずれると思いますが、そういうことでいいのではないでしょうか?
それでよければ、次のようなコードでできます。

 'セル全体から「発注数」とあるセルを検索
 Set FR = Cells.Find("発注数", , xlValues, xlWhole, , xlPrevious)
 If Not FR Is Nothing Then
  '検索セルが見つかったら
  FR.EntireColumn.Select
  Selection.Insert Shift:=xlToRight
 Else
  MsgBox "発注数のセルは見つかりません"
 End If

【28703】Re:UserFormのTextBox入力後に特定セルを...
発言  tbtk  - 05/9/13(火) 9:18 -

引用なし
パスワード
   ご返事ありがとうございます。
いただいたコードを試してみたのですがエラーになります。
Set FR = Cells.Find("発注数", , xlValues, xlWhole, , xlPrevious)
FRはどのような形の変数宣言にしたらよろしいのでしょうか?

【28708】Re:UserFormのTextBox入力後に特定セルを...
お礼  tbtk  - 05/9/13(火) 11:39 -

引用なし
パスワード
   ありがとうございました。
色々、試しているうちにエラーは自己解決できました。
本当にお世話になりました。
初心者のもので、またご教示頂くこともあると思いますのでよろしくお願いします。

【28717】Re:UserFormのTextBox入力後に特定セルを...
質問  tbtk  - 05/9/13(火) 14:45 -

引用なし
パスワード
   Set FR = Cells.Find("発注数", , xlValues, xlWhole, , xlPrevious)
すみません、このコードの
[xlValues, xlWhole, , xlPrevious]
の意味を
詳しく教えていただけると有難いのですが、ヘルプとかも使ってみたのですが
いまいちよく分かりません。お手数ですがよろしくお願いします。

【28754】Re:UserFormのTextBox入力後に特定セルを...
回答  かみちゃん  - 05/9/13(火) 22:57 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>Set FR = Cells.Find("発注数", , xlValues, xlWhole, , xlPrevious)
>すみません、このコードの
>[xlValues, xlWhole, , xlPrevious]
>の意味を

xlValues … 値
xlWhole … 完全一致
xlPrevious … 前方検索 → xlNext(既定値:後方検索)でも構わない

です。
なお、一般操作で「編集」−「検索」で「オプション」をクリックして、いろいろ
設定しながら操作してみて、それらを「マクロの記録」で記録すると、コードが
わかりますので、他にどのような設定があるかがわかるかと思います。

【28762】Re:UserFormのTextBox入力後に特定セルを...
お礼  tbtk  - 05/9/14(水) 8:34 -

引用なし
パスワード
   すみません。お手数おかけしました。
早速、調べてみます。ありがとうございました。

9205 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free