Excel VBA質問箱 IV

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

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


1709 / 13646 ツリー ←次へ | 前へ→

【72448】VBA「ラジオボタン・チェックボックス」の値の転記について とど 12/8/12(日) 23:40 質問[未読]
【72449】Re:VBA「ラジオボタン・チェックボックス」... UO3 12/8/13(月) 10:09 発言[未読]
【72450】Re:VBA「ラジオボタン・チェックボックス」... とど 12/8/13(月) 11:24 質問[未読]
【72451】Re:VBA「ラジオボタン・チェックボックス」... とど 12/8/13(月) 11:30 質問[未読]
【72453】Re:VBA「ラジオボタン・チェックボックス」... UO3 12/8/13(月) 13:35 発言[未読]
【72459】Re:VBA「ラジオボタン・チェックボックス」... とど 12/8/13(月) 15:23 お礼[未読]
【72460】Re:VBA「ラジオボタン・チェックボックス」... UO3 12/8/13(月) 16:27 発言[未読]
【72463】Re:VBA「ラジオボタン・チェックボックス」... とど 12/8/13(月) 16:55 回答[未読]
【72464】Re:VBA「ラジオボタン・チェックボックス」... UO3 12/8/13(月) 17:10 発言[未読]
【72466】Re:VBA「ラジオボタン・チェックボックス」... とど 12/8/13(月) 17:27 回答[未読]
【72470】Re:VBA「ラジオボタン・チェックボックス」... UO3 12/8/13(月) 19:59 発言[未読]
【72471】Re:VBA「ラジオボタン・チェックボックス」... とど 12/8/13(月) 22:32 回答[未読]
【72472】Re:VBA「ラジオボタン・チェックボックス」... UO3 12/8/14(火) 5:42 発言[未読]
【72473】Re:VBA「ラジオボタン・チェックボックス」... とど 12/8/14(火) 10:32 発言[未読]
【72475】Re:VBA「ラジオボタン・チェックボックス」... UO3 12/8/14(火) 11:32 発言[未読]
【72476】Re:VBA「ラジオボタン・チェックボックス」... とど 12/8/14(火) 12:00 お礼[未読]

【72448】VBA「ラジオボタン・チェックボックス」...
質問  とど  - 12/8/12(日) 23:40 -

引用なし
パスワード
   Excel(2010)で、VBAでフォームを作成し、入力画面を作り、セルに
転記しようとしています。
まずシートは1「sheet1」、2は「データ」、3は「リンク元」としています。

次に、VBAの「転記ボタン」の部分を以下のようにしています。
------ここから-------
Private Sub 転記ボタン_Click()
Dim myrow As Integer
With Sheets("List").Range("A1048576").End(xlUp)

 If .Range("A2").Value = "" Then
  myrow = 2
 Else
  myrow = .Range(Cells(.Rows.Count, 1). _
       End(xlUp).Address).Row + 1
 End If
.Cells(myrow, 1).Value = 番号.Value
.Cells(myrow, 2).Value = 氏名.Value

(略)

.Cells(myrow, 50).Value = 備考.Value
End With
End Sub
------ここまで-------

該当のフォーム(UserForm1)の中には、
「チェックボックス」(フレームにてグレープしている物もあれば、
グループにしていない物もあります)や、「ラジオボタン」もあります。

ここで問題なのが、上記スクリプト部分に、
(以下は、ラジオボタン。2つのうち、いづれかのみ選択)
例→ .Cells(myrow, 5).Value = 男性.Caption
例→ .Cells(myrow, 6).Value = 女性.Caption
と、した場合、「男性」にチェックを入れても、「両方チェックを入れない場合」でも、
セルに「男性」と「女性」が転記されてしまいます。

これは例えば、「チェックボックス」でも同様で、例(以下)で次ぎのようにすると、

.Cells(myrow, 7).Value = りんご.Caption
.Cells(myrow, 8).Value = バナナ.Caption
.Cells(myrow, 9).Value = メロン.Caption

と、「好きな食べ物にチェックを入れる」を例にした場合でも同様です。
一つしかチェックされない場合でも、3つチェック無しの場合でも、全て転記されてしまいます。

色々と、試行錯誤で調べた結果、

「チェックボックス」や「ラジオボタン」の場合、選択した値を「FALSE」か「TRUE」で返す
のではないか?と感じており、ここで、「任意の文字が無理ならば、sheet3つ目の“リンク元”」
に、コピー元として、「データ」シートをコピー先とすれば良いのかと思いました。

検索して色々としらべましたが、

Worksheets("Sheet1").Range("A1").Copy Worksheets("Sheet2").Range("C2")

がありましたが、これは、「データ」シートの1行目以降に最後尾より追加し転記する。
といった場合、いままで作ってきた「.Cells(myrow, ●).Value =」は無駄になってしまうのかと
分からなくなってしまいました。


現在の状態として、
ラジオボタン(フレーム化)3つ1組。
ラジオボタン(フレーム無し)3つ1組。
ラジオボタン(フレーム無し)2つ1組。

チェックボックスはそれぞれ多数。という状態です。

お知恵をお借りしたく、宜しくお願い致します。

【72449】Re:VBA「ラジオボタン・チェックボックス...
発言  UO3  - 12/8/13(月) 10:09 -

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

こんにちは

>「チェックボックス」や「ラジオボタン」の場合、選択した値を「FALSE」か「TRUE」
>で返すのではないか?と感じており

はい、感じられた通りです。
なので、チェックボックスであれ、オプションボタンであれ、

If りんご.Value Then ○○○.Value = りんご.Caption

このように記述しましょう。

>ここで、「任意の文字が無理ならば、sheet3つ目の“リンク元”」

この文を含め、これ以降については、意味が理解できていませんので、
ゆっくり読んでみます。

ところで、アップされたコードですが

・行番号関連の変数はInteger型 ではなく Long型で宣言してください。
・With が必ずしも有効に(適切に?)記述されていないように思えます。

たとえば以下。

Private Sub 転記ボタン_Click()
  Dim myrow As Long
  
  With Sheets("List")
  
    If .Range("A2").Value = "" Then
      myrow = 2
    Else
      myrow = .Range("A" & .Rows.Count).End(xlUp).Row + 1
    End If
    
    .Cells(myrow, 1).Value = 番号.Value
    .Cells(myrow, 2).Value = 氏名.Value
    
    '(略)
    
    .Cells(myrow, 50).Value = 備考.Value
    
  End With
  
End Sub

【72450】Re:VBA「ラジオボタン・チェックボックス...
質問  とど  - 12/8/13(月) 11:24 -

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

こんにちは。UO3さん、ご連絡ありがとうございます。

>>「チェックボックス」や「ラジオボタン」の場合、選択した値を「FALSE」か「TRUE」
>>で返すのではないか?と感じており
>
>はい、感じられた通りです。
>なので、チェックボックスであれ、オプションボタンであれ、
>

>If りんご.Value Then ○○○.Value = りんご.Caption

ここのIfの記述はどの部分に挿入すればよろしいでしょうか。
いきなりの、ド素人質問で申し訳ありません。

Private Sub checkBox1ringo_Click()

If りんご.Value Then ○○○.Value = りんご.Caption

End Sub

とするのでしょうか。
また、ここの「○○○」の部分はFALSEの値だとすれば、FALSE
の時は「何も入力なし」とするには○を無しにし "" でもよろしいですね。


>>ここで、「任意の文字が無理ならば、sheet3つ目の“リンク元”」
>
>この文を含め、これ以降については、意味が理解できていませんので、
>ゆっくり読んでみます。

これは、本当でしたら、わたくしは「カタカナ半角」でTRUEならば、
任意の文字を返したかったのですが、VBA上の仕様でしょうか。
半角カタカナを書くと、自動的に全角カタカナに変換されなおされて
しまい、そで他のサイトで見つけた、「他のシートからコピーして転記」
などのキーワードで見つけた事を書きました。

>
>・行番号関連の変数はInteger型 ではなく Long型で宣言してください。
>・With が必ずしも有効に(適切に?)記述されていないように思えます。

勉強不足で失礼致しました。

【72451】Re:VBA「ラジオボタン・チェックボックス...
質問  とど  - 12/8/13(月) 11:30 -

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

失礼しました。書き忘れです。

>If りんご.Value Then ○○○.Value = りんご.Caption

の場合ですが、「データ」シートの、縦1,2,3のY列目の
2行目から下から追加して行きたいといった場合と、肝心な事を
記入するのを忘れおりました。

記事を削除し書き直そうと心がけましたが、
サーバーエラー(混雑中?)の為、追加投稿致します。
宜しく折り願い致します。

【72453】Re:VBA「ラジオボタン・チェックボックス...
発言  UO3  - 12/8/13(月) 13:35 -

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

こんにちは

>また、ここの「○○○」の部分はFALSEの値だとすれば、FALSE
>の時は「何も入力なし」とするには○を無しにし "" でもよろしいですね。

う〜ん・・・説明を省きすぎましたか?

今、たとえば

.Cells(myrow, 7).Value = りんご.Caption

としておられる。
で、これでは無条件に、.Cells(myrow, 7).Value に転記されてしまう。
ということなので、ここを


If りんご.Value Then .Cells(myrow, 7).Value = りんご.Caption

このようにされたらよろしいのではと申し上げました。
これは、チェックボックス(あるいはオプションボタン)の りんご が選ばれているときだけ
転記するコードです。


>「データ」シートの、縦1,2,3のY列目の2行目から下から追加して行きたい

Y列の2行目という日本語はわかりますが、縦1,2,3とは何のことでしょうか?

いずれにしましても、そちらでアップされたコード、少しお化粧直ししましたが
現在、A2が空白なら2行目、そうでなければA列のデータ最終行の次の行番号を
myrow = .Range("A" & .Rows.Count).End(xlUp).Row + 1
で取得し

    .Cells(myrow, 1).Value = 番号.Value
    .Cells(myrow, 2).Value = 氏名.Value

番号.Value を、その行のA列に、氏名.Value を、その行のB列にセットしていますよね?
これを、どうしたいのですか?
もし、Y列で判定したいのであれば、
If .Range("A2").Value = "" Then

If .Range("Y2").Value = "" Then
でしょうし、
myrow = .Range("A" & .Rows.Count).End(xlUp).Row + 1

myrow = .Range("Y" & .Rows.Count).End(xlUp).Row + 1
でしょうけど?

【72459】Re:VBA「ラジオボタン・チェックボックス...
お礼  とど  - 12/8/13(月) 15:23 -

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

UO3さん、ご連絡が遅くなり失礼しました。
今まで、スクリプトをコピーしつつ、一つ一つ確認しながら
作っておりました。

>▼とど さん:
>
>う〜ん・・・説明を省きすぎましたか?
>
>今、たとえば
>
>.Cells(myrow, 7).Value = りんご.Caption
>
>としておられる。
>で、これでは無条件に、.Cells(myrow, 7).Value に転記されてしまう。
>ということなので、ここを
>
>
>If りんご.Value Then .Cells(myrow, 7).Value = りんご.Caption

理解不足で大変失礼致しまた。
ご丁寧にご案内くださった方法(省略無しの記述)で、無事に
解決する事ができました。
ありがとうございます。


>>「データ」シートの、縦1,2,3のY列目の2行目から下から追加して行きたい
>
>Y列の2行目という日本語はわかりますが、縦1,2,3とは何のことでしょうか?
>
>いずれにしましても、そちらでアップされたコード、少しお化粧直ししましたが
>現在、A2が空白なら2行目、そうでなければA列のデータ最終行の次の行番号を
>myrow = .Range("A" & .Rows.Count).End(xlUp).Row + 1
>で取得し
>
>    .Cells(myrow, 1).Value = 番号.Value
>    .Cells(myrow, 2).Value = 氏名.Value
>
>番号.Value を、その行のA列に、氏名.Value を、その行のB列にセットしていますよね?
>これを、どうしたいのですか?


説明不足で申し訳ありませんでした。


.Cells(myrow, 2).Value = 氏名.Value
If りんご.Value Then .Cells(myrow, 7).Value = りんご.Caption

(※氏名.Valueはテキストボックスです)
これらは、3つのコントロールのみしか利用しておらず、
・テキストボックス、チェックボックス、ラジオボタン、のみです。
それらを未入力にせよ、必要項目のみ入力をし「転記ボタン」を
押した際に、「データ」シートに転記させて、全て最終行に追加・追加と
させたいのです。

しかし、今現在の確認できている事は、
「転記ボタン」クリックして「未入力部分ある場合」次のデータでは、
「未入力ではない所に入力もしくはチェック等」をし「転記ボタン」を押すと、
前データの「空き部分」にデータが転記されてしまいます。

くどいようで、申し訳ないのですが、「転記ボタン」を押すと、
2行目に転記。そして次のデータ入力は3行目に追加。などと、
全てデータを最終行に追加していきたいのです。

お忙しい中、恐れ入りまずがご連絡お待ちしております。

【72460】Re:VBA「ラジオボタン・チェックボックス...
発言  UO3  - 12/8/13(月) 16:27 -

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

特定の列でチェックすると、データがあっても、たまたま、その列が未入力だと具合がわるいということですね。

今、

    If .Range("A2").Value = "" Then
      myrow = 2
    Else
      myrow = .Range("A" & .Rows.Count).End(xlUp).Row + 1
    End If

こうなっていますね。これを、

    If WorksheetFunction.CountA(Rows(2)) = 0 Then
      myrow = 2
    Else
      myrow = .UsedRange.Cells(.UsedRange.Cells.Count).Row + 1
    End If

こうしてお試しください。

【72463】Re:VBA「ラジオボタン・チェックボックス...
回答  とど  - 12/8/13(月) 16:55 -

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

ご連絡ありがとうございます。
以下の部分を変更致しましたが、
「テキストボックス」等の種類3つ全て、最終行に追加ではなく、
空きセルに詰めて転記されてしまう事が確認とれました。

ご報告までに、ご連絡をお待ちしております。

>特定の列でチェックすると、データがあっても、たまたま、その列が未入力だと具合がわるいということですね。
>
>今、
>
>    If .Range("A2").Value = "" Then
>      myrow = 2
>    Else
>      myrow = .Range("A" & .Rows.Count).End(xlUp).Row + 1
>    End If
>
>こうなっていますね。これを、
>
>    If WorksheetFunction.CountA(Rows(2)) = 0 Then
>      myrow = 2
>    Else
>      myrow = .UsedRange.Cells(.UsedRange.Cells.Count).Row + 1
>    End If
>
>こうしてお試しください。

【72464】Re:VBA「ラジオボタン・チェックボックス...
発言  UO3  - 12/8/13(月) 17:10 -

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

まず、シートのレイアウトを、もう少し具体的に教えてもらえますか?
それと、書き込みのコード、Sub から End Sub まですべてアップしてください。

【72466】Re:VBA「ラジオボタン・チェックボックス...
回答  とど  - 12/8/13(月) 17:27 -

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

ご連絡ありがとうございます。


ご連絡ありがとうございます。
殆どコピーして引用致します。
ただ、個人的な事で申し訳ありませんが、名前(オブジェクト?名)については、
一部、代替させて頂きました事をご理解頂ければ幸いです。


***************************************************************
Private Sub 反映転記_Click()
Dim myrow As Long

  With Sheets("List")

    If WorksheetFunction.CountA(Rows(2)) = 0 Then
      myrow = 2
    Else
      myrow = .UsedRange.Cells(.UsedRange.Cells.Count).Row + 1
    End If
'----------------------------------------
.Cells(myrow, 1).Value = 番号.Value
.Cells(myrow, 2).Value = 氏名.Value
.Cells(myrow, 3).Value = 氏名_カナ.Value
.Cells(myrow, 4).Value = 組合.Value
.Cells(myrow, 5).Value = 代表.Value
.Cells(myrow, 6).Value = 郵便番号.Value
.Cells(myrow, 7).Value = 住所1.Value
.Cells(myrow, 8).Value = 住所2.Value
.Cells(myrow, 9).Value = 電話番号.Value
.Cells(myrow, 10).Value = ファックス番号.Value
.Cells(myrow, 11).Value = メールアドレス.Value
.Cells(myrow, 12).Value = 内線番号1.Value
.Cells(myrow, 13).Value = 内線番号12.Value

If 平日.Value Then .Cells(myrow, 14).Value = 平日.Caption
If 土日祝日.Value Then .Cells(myrow, 15).Value = 土日祝日.Caption
If 不明.Value Then .Cells(myrow, 16).Value = 不明.Caption

.Cells(myrow, 17).Value = 曜日メモ.Value

If 電話連絡.Value Then .Cells(myrow, 18).Value = 電話連絡.Caption
If ファックス.Value Then .Cells(myrow, 19).Value = ファックス.Caption
If メール.Value Then .Cells(myrow, 20).Value = メール.Caption


If アカ.Value Then .Cells(myrow, 21).Value = アカ.Caption
If ミドリ.Value Then .Cells(myrow, 22).Value = ミドリ.Caption
If シロ.Value Then .Cells(myrow, 23).Value = シロ.Caption
If キイロ.Value Then .Cells(myrow, 24).Value = キイロ.Caption
If 黒.Value Then .Cells(myrow, 25).Value = 黒.Caption

.Cells(myrow, 25).Value = その他_備考.Value

End With
End Sub
***************************************************************
また、今回手持ちの書籍を確認しておりましたが、「全角カタカナ」を
「半角カタカナ」に変換するスクリプトを見つけました。

  myStr = "アイウ"
  Range("A5").Value = myStr & "→半角に変換"
  Range("B5").Value = StrConv(myStr, vbNarrow)

これを例えば

If アカ.Value Then .Cells(myrow, 21).Value = アカ.Caption

の部分に利用したいなどの場合はいかがなものなのでしょうか。

度々恐縮ですが、ご連絡お待ちしております。

【72470】Re:VBA「ラジオボタン・チェックボックス...
発言  UO3  - 12/8/13(月) 19:59 -

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

アップいただいたコードをそのまま取り込んで動かしましたが最初は2行目、
以降、3行目、4行目と、順に転記されますが?

ただ(もちろん)転記データがすべて『空白』なら、その行には何もないわけですから
次のクリックでも、その『最後の行』に転記されますが?

もしかして、そうではなく、1行すべて空白でも、次のクリックでは、その空白行の次に
転記したいということですか?(1行空白行をあけて)
もし、そういう要件であれば、少し工夫が必要ですよ。

ところで、

>これは、本当でしたら、わたくしは「カタカナ半角」でTRUEならば、
>任意の文字を返したかったのですが、VBA上の仕様でしょうか。
>半角カタカナを書くと、自動的に全角カタカナに変換されなおされて
>しまい、そで他のサイトで見つけた、「他のシートからコピーして転記」
>などのキーワードで見つけた事を書きました。


>また、今回手持ちの書籍を確認しておりましたが、「全角カタカナ」を
>「半角カタカナ」に変換するスクリプトを見つけました。
>  myStr = "アイウ"
>  Range("A5").Value = myStr & "→半角に変換"
>  Range("B5").Value = StrConv(myStr, vbNarrow)
>これを例えば
>If アカ.Value Then .Cells(myrow, 21).Value = アカ.Caption
>の部分に利用したいなどの場合はいかがなものなのでしょうか。

二度ほど半角カタカナのことに触れておられますが、半角カタカナがどうあれ
転記をどの行にするかと言うこととは関係ないですね。

おやりになりやいことは、テキストボックスに全角カタカナで入力されたものも
セルには半角カタカナになおしてセットしたいということですか?
(半角カタカナを使うのは、あまりおすすめできませんが)

【72471】Re:VBA「ラジオボタン・チェックボックス...
回答  とど  - 12/8/13(月) 22:32 -

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

ご連絡ありがとうございます。

>アップいただいたコードをそのまま取り込んで動かしましたが最初は2行目、
>以降、3行目、4行目と、順に転記されますが?
>
>ただ(もちろん)転記データがすべて『空白』なら、その行には何もないわけですから
>次のクリックでも、その『最後の行』に転記されますが?
>
>もしかして、そうではなく、1行すべて空白でも、次のクリックでは、その空白行の次に
>転記したいということですか?(1行空白行をあけて)
>もし、そういう要件であれば、少し工夫が必要ですよ。

例えば、1回目の入力で
.Cells(myrow, 8).Value = 住所2.Value
.Cells(myrow, 9).Value = 電話番号.Value
が未記入だった場合…

2回目のデータでは
.Cells(myrow, 8).Value = 住所2.Value
.Cells(myrow, 9).Value = 電話番号.Value
が入力された場合は、前データの空きのセルに転記されるという症状が
発生しております。

くどい説明になってしまい、恐縮ですが、
1度目で
.Cells(myrow, 8).Value = 住所2.Value
.Cells(myrow, 9).Value = 電話番号.Value
等(他もろもろ)の未記入があっ「転記」ボタンをクリックした場合は、
「一件のデータ」として取扱いという事です。

>ところで、
>
>二度ほど半角カタカナのことに触れておられますが、半角カタカナがどうあれ
>転記をどの行にするかと言うこととは関係ないですね。
>
>おやりになりやいことは、テキストボックスに全角カタカナで入力されたものも
>セルには半角カタカナになおしてセットしたいということですか?
>(半角カタカナを使うのは、あまりおすすめできませんが)

チェックボックスで「転記」する時のデータで
If 平日.Value Then .Cells(myrow, 14).Value = 平日.Caption
などありますが、これをフォームのコントロールプロパティで
設定を確認してみます。

度々恐れ入りますが、ご連絡をお待ちしております。

【72472】Re:VBA「ラジオボタン・チェックボックス...
発言  UO3  - 12/8/14(火) 5:42 -

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

おはようございます

どうも、やりとりがスムーズに進みませんねぇ・・

そちらでアップされたコードでは、クリックのたびに

.Cells(myrow, 1).Value = 番号.Value
   〜
.Cells(myrow, 25).Value = その他_備考.Value

つまり、『どこかの行の』A列からY列までに値が書き込まれますね。
仮に、この行が20行目だったとします。
で、そのすべてが、空白なら、次のクリックでは、また、20行目に書かれます。
これは、コードがそうなっているからです。

でも、書き込まれた20行目に空白項目がたくさんあったとしても、1つでも
値があれば、次のクリックでは、21行目にかかれます。

ある項目は21行目にかかれているけど、前回空白だった項目は、20行目に
泣き別れて書きもまれると言うことは絶対にありません。

書き込んでいる行番号は、すべての項目に対して myrow ですから、
(間違った行に書き込まれたとしても)同じ行に書き込まれます。

>.例えば、1回目の入力で
>.Cells(myrow, 8).Value = 住所2.Value
>.Cells(myrow, 9).Value = 電話番号.Value
>が未記入だった場合…
>2回目のデータでは
>.Cells(myrow, 8).Value = 住所2.Value
>.Cells(myrow, 9).Value = 電話番号.Value
>が入力された場合は、前データの空きのセルに転記されるという症状が
>発生しております。

具体的に、1回目のでクリックで値が入ったセルと、2回目のクリックで値が入ったセルを
『すべて』教えてもらえますか?

ところで、今回のトラブル(?)とは関係ありませんが
>If 黒.Value Then .Cells(myrow, 25).Value = 黒.Caption
>.Cells(myrow, 25).Value = その他_備考.Value

最後は、これでいいのですか? 25列目(Y列)に上書きしてますが?

それと、カタカナの件、そちらの意図が理解できていません。

>チェックボックスで「転記」する時のデータで
>If 平日.Value Then .Cells(myrow, 14).Value = 平日.Caption
>などありますが、これをフォームのコントロールプロパティで
>設定を確認してみます。

If 平日.Value Then .Cells(myrow, 14).Value = 平日.Caption

このコード実行と、半角カタカナやプロパティ設定がどう関係するのか?
もしかしたら、キャプションを半角カタカナで設定したいけど、どうしても全角入力になってしまう
(あるいは、その逆)ということですか?
まぁ、いずれにしてもコメントしましたように、半角カタカナは環境依存文字ですから
使わない方が無難です。(強制はできませんけど)

【72473】Re:VBA「ラジオボタン・チェックボックス...
発言  とど  - 12/8/14(火) 10:32 -

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

おはようございます。

>そちらでアップされたコードでは、クリックのたびに
>
>.Cells(myrow, 1).Value = 番号.Value
>   〜
>.Cells(myrow, 25).Value = その他_備考.Value
>
>つまり、『どこかの行の』A列からY列までに値が書き込まれますね。
>仮に、この行が20行目だったとします。
>で、そのすべてが、空白なら、次のクリックでは、また、20行目に書かれます。
>これは、コードがそうなっているからです。

A列Y列とはA〜Yの縦ですね。
基本的な事ですみません。


>でも、書き込まれた20行目に空白項目がたくさんあったとしても、1つでも
>値があれば、次のクリックでは、21行目にかかれます。

要するに、1件目のデータで、「名前・電話番号以外の他の部分は
空(入力なし)の場合て転記した場合、次の2件目のデータは、
2行目(次の行)に転記される事が確認されている」という事ですね。

>ある項目は21行目にかかれているけど、前回空白だった項目は、20行目に
>泣き別れて書きもまれると言うことは絶対にありません。
>
>書き込んでいる行番号は、すべての項目に対して myrow ですから、
>(間違った行に書き込まれたとしても)同じ行に書き込まれます。
>
>>.例えば、1回目の入力で
>>.Cells(myrow, 8).Value = 住所2.Value
>>.Cells(myrow, 9).Value = 電話番号.Value
>>が未記入だった場合…
>>2回目のデータでは
>>.Cells(myrow, 8).Value = 住所2.Value
>>.Cells(myrow, 9).Value = 電話番号.Value
>>が入力された場合は、前データの空きのセルに転記されるという症状が
>>発生しております。
>
>具体的に、1回目のでクリックで値が入ったセルと、2回目のクリックで値が入ったセルを
>『すべて』教えてもらえますか?

一旦、書き込み(掲示板)が終了したあと、再確認します。
少々、お待ち下さい。

>ところで、今回のトラブル(?)とは関係ありませんが
>>If 黒.Value Then .Cells(myrow, 25).Value = 黒.Caption
>>.Cells(myrow, 25).Value = その他_備考.Value
>
>最後は、これでいいのですか? 25列目(Y列)に上書きしてますが?

その他_備考が最終番号です。
黒の部分の数字がミスです。失礼しましまた。


>それと、カタカナの件、そちらの意図が理解できていません。
>If 平日.Value Then .Cells(myrow, 14).Value = 平日.Caption
>
>このコード実行と、半角カタカナやプロパティ設定がどう関係するのか?
>もしかしたら、キャプションを半角カタカナで設定したいけど、どうしても全角入力になってしまう
>(あるいは、その逆)ということですか?
>まぁ、いずれにしてもコメントしましたように、半角カタカナは環境依存文字ですから
>使わない方が無難です。(強制はできませんけど)

これはただ単純に、「なぜ半角カナを使いたいのか」の理由は簡単な事です。
印刷用紙(例えばプリンタがA4までのみ対応)の場合を考えたとき、
チェック項目で、カナ文字部分を多数選択すると、全角カナで、
印刷スペースを食ってしまうので、「半角カナにして、印刷スペースを詰めて
節約しよう」というのが意図でした。

【72475】Re:VBA「ラジオボタン・チェックボックス...
発言  UO3  - 12/8/14(火) 11:32 -

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

>A列Y列とはA〜Yの縦ですね。
>基本的な事ですみません。

はい、エクセルの世界では、「縦」を「列」、「横」を「行」と呼びます。
ときどき、「A行」と、間違った表現をされる質問者さんもいらっしゃいますね。


>要するに、1件目のデータで、「名前・電話番号以外の他の部分は
>空(入力なし)の場合て転記した場合、次の2件目のデータは、
>2行目(次の行)に転記される事が確認されている」という事ですね。

はい、もちろんです。
ところで、「次の2件目のデータは、2行目」と書かれていますが、
そちらのコードは、最初の入力は2行目、次は3行目、その次は4行目・・・
ですね。

>一旦、書き込み(掲示板)が終了したあと、再確認します。
>少々、お待ち下さい。

はい、よろしく。

●なお、カタカナの件は、今回の転記のロジックとは関係がありませんので
 私からは、特にコメントしません。

【72476】Re:VBA「ラジオボタン・チェックボックス...
お礼  とど  - 12/8/14(火) 12:00 -

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

お待たせしました。
長年PCを触っているものの、ACCESSのデータベースを利用したいものの、
先方のPCにACCESSが入っていない都合で、エクセルでデータベースを
作ろうとしたのが始まりでしたが、長い事PCを触れていながらでも、
エクセルのVBAとは格闘どした。

さて、ご報告いたします。

結論。
UO3さんのおっしゃる通り、【無事に出来ました!】です。

Q.では【あんな症状が出ていた原因は?】ですが、勝手な推測ですが。
「再確認をしてください」との依頼があった際に、わたくしの方で
【もしくは、これが原因では?】と察したのが、【該当エクセルファイルの
保存先】でした。【家庭内外付けネットワークHDD宛に保存】していた
からです。それを【ローカルPCに移して再確認】したところ、
【無事に出来ました】という事です。

大変、お騒がせ致しました。
これで、無事にできました。ありがとうございます。
また何かありましたら、宜しくお願い致します。
この度は、日をまたいでまで、貴重な時間の合間に、お力添え頂き、
ありがとうございました。

ちなみに、ご参考までに。
ローカルPC:win7 64bit
ネットワーク外付けHDD:バッファロー現行販売シリーズLS-Vシリーズ(かな?)

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