Excel VBA質問箱 IV

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

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


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

【9877】編集フォームの作成について 03/12/19(金) 16:24 質問
【9878】Re:編集フォームの作成について INA 03/12/19(金) 16:43 回答
【9879】Re:編集フォームの作成について 03/12/19(金) 17:03 発言
【9880】Re:編集フォームの作成について INA 03/12/19(金) 17:21 回答
【9888】Re:編集フォームの作成について 03/12/19(金) 18:40 お礼

【9877】編集フォームの作成について
質問    - 03/12/19(金) 16:24 -

引用なし
パスワード
   初めて質問させていただきます。よろしくお願いします。
データ管理用のシートを作成しており、フォーマットがだいたいできたところです。今編集フォームの作成に取り掛かっているのですが、どのように作成すればよいか、迷っています。

   A(氏名)   B(年齢)   C(所属)  D(会員番号)

のようなデータです。ここで「会員番号」を入力すると、その会員のデータ(編集するのはBとCだけですが)だけが編集できるようにしたいのです(通常はシート保護をしています)。inputboxを使えばよいと思うのですが、そのあとの処理をどのようにしたらよいかわかりません。何かよいアイデアはないでしょうか。  

【9878】Re:編集フォームの作成について
回答  INA  - 03/12/19(金) 16:43 -

引用なし
パスワード
   どのような仕様にしたいのでしょうか?

シートを保護してあるなら、保護を解除して編集するだけですよね?

どんな感じでinputboxを使いたいのでしょうか?

【9879】Re:編集フォームの作成について
発言    - 03/12/19(金) 17:03 -

引用なし
パスワード
   INAさん、ご回答ありがとうございます。

>どのような仕様にしたいのでしょうか?
>シートを保護してあるなら、保護を解除して編集するだけですよね?
>どんな感じでinputboxを使いたいのでしょうか?

すいません。説明が簡単すぎました。
編集ボタンを作って、それをクリックするとInputboxが表示される。そこの会員番号を入力すると、データが編集できるようになる。というようにしたいのです。で、保護を解除すると他のデータまで編集される可能性があるので・・・。たとえばInputboxに会員番号を入力するとその行のデータ編集フォームが現れる→新たなデータを入力して実行すると書き換えられる、という風にできないかと考えたのですが、挫折してしまいました。解決策があったら教えていただけないでしょうか?

【9880】Re:編集フォームの作成について
回答  INA  - 03/12/19(金) 17:21 -

引用なし
パスワード
   参考にして、がんばってください。


Option Explicit

Private Sub CommandButton1_Click()
Dim myNo As String
Dim FindData As Range
Dim chStr1 As String
Dim chStr2 As String
  
  myNo = Application.InputBox("編集する会員番号を入力して下さい。", "編集", Type:=2)
  
  If myNo = "False" Then
    MsgBox "キャンセルされました。"
    Exit Sub
  End If
    
  Set FindData = Range("D:D").Find(What:=myNo, LookIn:=xlValues, LookAt:=xlWhole)
 
  If FindData Is Nothing Then
    MsgBox "見つかりませんでした。"
    Exit Sub
  End If
  
  FindData.Select
  
  FindData.Offset(0, -2).Select
  chStr1 = Application.InputBox("年齢を入力して下さい。", _
       "年齢編集", FindData.Offset(0, -2).Value, Type:=2)
  
  If chStr1 = "False" Then
    MsgBox "キャンセルされました。"
    Exit Sub
  End If
  
  FindData.Offset(0, -1).Select
  chStr2 = Application.InputBox("所属を入力して下さい。", _
       "所属編集", FindData.Offset(0, -1).Value, Type:=2)
  
  If chStr2 = "False" Then
    MsgBox "キャンセルされました。"
    Exit Sub
  End If
  
  ActiveSheet.Unprotect
  
  FindData.Offset(0, -2).Value = chStr1
  FindData.Offset(0, -1).Value = chStr2
 
  ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
  
  MsgBox "編集終了"
End Sub

【9888】Re:編集フォームの作成について
お礼    - 03/12/19(金) 18:40 -

引用なし
パスワード
   少しアレンジして、やっと完成までたどり着きました。
ありがとうございました。
また何かあったらお願いします。

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