Excel VBA質問箱 IV

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

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


46 / 13163 ツリー ←次へ | 前へ→

【79861】エラーメッセージ Err 18/5/1(火) 14:56 質問[未読]
【79863】Re:エラーメッセージ γ 18/5/1(火) 21:25 発言[未読]
【79864】Re:エラーメッセージ Err 18/5/2(水) 12:20 発言[未読]
【79865】Re:エラーメッセージ よろずや 18/5/2(水) 13:01 発言[未読]
【79868】Re:エラーメッセージ Err 18/5/2(水) 15:36 発言[未読]
【79869】Re:エラーメッセージ よろずや 18/5/2(水) 16:16 発言[未読]
【79871】Re:エラーメッセージ 暇つぶし 18/5/3(木) 11:16 発言[未読]
【79870】Re:エラーメッセージ www 18/5/2(水) 21:11 発言[未読]

【79861】エラーメッセージ
質問  Err  - 18/5/1(火) 14:56 -

引用なし
パスワード
   エラーメッセージで質問です。

E10:Z11・E13:Z14、E17:Z18・E20:Z21、E24:Z25・E27:Z28、E31:Z32・E34:Z35の結合セルです。
ここがNo.1の入力セルが2段あります。

AE10:BF11・AE13:BF14、AE17:BF18・AE20:BF21、AE24:BF25・AE27:BF28、AE31:BF32・AE34:BF35の結合セルです。
ここがNo.2の入力セルが2段あります。

BL11:BU13、BL18:BU20、BL25:BU27、BL32:BU34結合セルです。
ここがNo.3の入力セルが1段あります。


No.1に値が入力されていればNo.2に入力できる。
No.1に値が入力されていなければ、No.2及びNo.3には入力できずにエラーメッセージでNo.1を入力して下さい。
No.2に値が入力されていればNo.3に入力できる。
No.2に値が入力されていなければ、No.3には入力できずにエラーメッセージでNo.2を入力して下さい。

セルの一番上で説明致しますと、以下のようになります。
E17:Z18・E20:Z21以降も同じです。

E10:Z11・E13:Z14のどちらかに値が入力されていれば、AE10:BF11・AE13:BF14に入力できる。
E10:Z11・E13:Z14の両方が空白ならば、AE10:BF11・AE13:BF14とBL11:BU13は入力できずにエラーメッセージでNo.1を入力して下さい。

AE10:BF11・AE13:BF14のどちらかに値が入力されていれば、BL11:BU13は入力できる。
AE10:BF11・AE13:BF14の両方が空白ならば、BL11:BU13は入力できずにエラーメッセージでNo.2を入力して下さい。

このような処理を行いたいのですが、参考コードを
どのように直せば良いのでしょうか?
ご教授下さいませ。
宜しくお願い致します。


以下参考コードです。

Private Sub Worksheet_Change(ByVal target As Range)

 If (target.Row >= 10 And target.Row <= 11) Or _
   (target.Row >= 13 And target.Row <= 14) Or _
   (target.Row >= 17 And target.Row <= 18) Or _
   (target.Row >= 20 And target.Row <= 21) Or _
   (target.Row >= 24 And target.Row <= 25) Or _
   (target.Row >= 27 And target.Row <= 28) Or _
   (target.Row >= 31 And target.Row <= 32) Or _
   (target.Row >= 34 And target.Row <= 35) Then

  Select Case target.Column
   Case 31
    Call ShowErrMsg2(target, -1)
   Case 64
    Call ShowErrMsg2(target, -2)
  End Select
  
 End If
End Sub


Sub ShowErrMsg2(ByVal target As Range, offsetCol As Integer)

 Dim result
 Dim num As Integer
 Dim errArray As Variant
  
 errArray = Array("大項目", "中項目", "小項目", "規格", "数量")
 If target.Column > 7 Then
  num = target.Column - 7
 Else
  num = target.Column
 End If

 If target.Cells.Offset(0, offsetCol) = "" Then
  If target.Cells <> "" Then
   result = MsgBox( _
        Prompt:=errArray(num + offsetCol - 1) & "を入力してください!", _
        Buttons:=vbRetryCancel + vbCritical, _
        Title:="警告")
      
   Select Case result
    Case vbRetry
     target.Cells.Activate
     Application.SendKeys _
           "{F2}" & _
           "{Left " & Len(ActiveCell.Value) & "}" & _
           "+{Right " & Len(ActiveCell.Value) & "}"

    Case vbCancel
     target.Cells = ""
     target.Cells.Activate
   End Select
  End If

 Else
  If target.Offset(0, -1) <> "" And offsetCol = -1 Then
   Exit Sub
  End If

  offsetCol = offsetCol + 1
  Call ShowErrMsg2(target, offsetCol)
 End If
  
End Sub

【79863】Re:エラーメッセージ
発言  γ  - 18/5/1(火) 21:25 -

引用なし
パスワード
   不明な点を具体的に質問して下さい。

すでにコードがあるようですが、これはどのようなものですか?
あなたが作ったものなら、修正は可能だと思いますが。
・エラーが出るなら、エラーメッセージを示してください。
・想定と異なるなら、想定と現実をそれぞれ具体的に説明してください。

【79864】Re:エラーメッセージ
発言  Err  - 18/5/2(水) 12:20 -

引用なし
パスワード
   ▼γ さん:
>不明な点を具体的に質問して下さい。
>
>すでにコードがあるようですが、これはどのようなものですか?

隣のセルが空白なら先に入力を促すマクロです。

>あなたが作ったものなら、修正は可能だと思いますが。

私は、作っておりません。

>・エラーが出るなら、エラーメッセージを示してください。

エラーメッセージは、出ていません。

>・想定と異なるなら、想定と現実をそれぞれ具体的に説明してください。

結合セルに適用したいのですが、結合セルにすると
結合セルの左端以外が空白と判定されます。

【79865】Re:エラーメッセージ
発言  よろずや  - 18/5/2(水) 13:01 -

引用なし
パスワード
   ▼Err さん:
>結合セルの左端以外が空白と判定されます。
Excelの仕様です。

そこまで分かっているなら、そこを外せばいいだけですが、何か?

【79868】Re:エラーメッセージ
発言  Err  - 18/5/2(水) 15:36 -

引用なし
パスワード
   ▼よろずや さん:

>そこまで分かっているなら、そこを外せばいいだけですが、何か?

わからないから聞いてるんですけど、何か?

【79869】Re:エラーメッセージ
発言  よろずや  - 18/5/2(水) 16:16 -

引用なし
パスワード
   ▼Err さん:
>▼よろずや さん:
>
>>そこまで分かっているなら、そこを外せばいいだけですが、何か?
>
>わからないから聞いてるんですけど、何か?
ステップ実行は、やってみましたか?
どこのステップで判定が期待に合わないのか?

【79870】Re:エラーメッセージ
発言  www  - 18/5/2(水) 21:11 -

引用なし
パスワード
   ▼Err さん:

>わからないから聞いてるんですけど、何か?

ワロタwww
確かにそうだwww
ここにいる回答者?の方がマナーがないねー
えらそうなこと言ってる割にコードも提示しないwww
提示しないんじゃなくてできないだけか?w
暇つぶしに来てる奴ばっかりwww
かまってちゃんか?www

【79871】Re:エラーメッセージ
発言  暇つぶし  - 18/5/3(木) 11:16 -

引用なし
パスワード
   暇つぶしにきている奴です。

▼Err さん:
>結合セルに適用したいのですが、結合セルにすると
>結合セルの左端以外が空白と判定されます。

そこまで分かっているなら、
「Excel 結合セル 値」
をキーワードに検索すれば目的のコードはすぐ見つかると思いますよ。

ht tp://ja.uncyclopedia.info/wiki/%E3%82%B0%E3%82%B0%E3%83%AC%E3%82%AB%E3%82%B9

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