- 締切済み
エクセルでアンケート、チェックボックスのコピー
エクセルでアンケートの集計結果を手作業で入力しようとしています。 40個の質問に対し、択一、複数選択、記述式回答など、まちまちの内容。 140人の回答を、OCRなどの環境がないので、手作業でエクセルに入力しようとしています。 そこで、チェックボックスを作り、解答者別のセルに回答を入れてゆく方法をとりたいのですが、チェックボックスの関連付けをカット&ペーストすると、コピー元のセル関連付けのままペーストされてしまいます。 これをどうにか、行番号ごとの関連付けに一発で行いたいのですが、どのようにすればよいか、わかりません。 リンクするセルの、$x$x の右端のx部分を、行番号にすべてあわせる方法を、おおしえいただけないでしょうか? よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- mitarashi
- ベストアンサー率59% (574/965)
昨夜、5600個のチェックボックスを作ろうとして、20分経っても終わらず、実行を中断させると暴走したので、嫌になって寝たのは私です。下記コードは実行しないことをお勧めします。 Sub test() Dim chkBox() As Object Dim targetRange As Range, myCell As Range Dim counter As Long Const xOffset As Long = 2 Const yOffset As Long = 3 Set targetRange = Range(Cells(1, 1), Cells(140, 40)) counter = 1 For Each myCell In targetRange.Cells ReDim Preserve chkBox(1 To counter) Set chkBox(counter) = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, _ DisplayAsIcon:=False, Left:=myCell.Left + xOffset, Top:=myCell.Top + yOffset, Width:=14.25, Height:= _ 9.75) chkBox(counter).LinkedCell = chkBox(counter).TopLeftCell.Address chkBox(counter).TopLeftCell.Value = False counter = counter + 1 Next myCell End Sub かわりに、チェックボックスが置いてあるセルにリンクを設定するマクロはお役に立たないでしょうか? 'チェックボックスが置いてあるセルをリンクセルに設定 Sub test2() Dim Obj As OLEObject For Each Obj In ActiveSheet.OLEObjects If Obj.ProgId = "Forms.CheckBox.1" Then Obj.LinkedCell = Obj.TopLeftCell.Address End If Next End Sub しかしながら、多量にチェックするなら、No.1の方の提案されている、セルをチェックボックス代わりにする案に、一票。
- nag0720
- ベストアンサー率58% (1093/1860)
チェックボックスを作るのは面倒なので、別の方法を。 下記のコードは、A1:J10の範囲の中でセルをダブルクリックすると、○が付いたり消えたりします。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Row >= 1 And Target.Row <= 10 And Target.Column >= 1 And Target.Column <= 10 Then If Target.Value = "○" Then Target.Value = "" Else Target.Value = "○" End If Cancel = True End If End Sub
- nag0720
- ベストアンサー率58% (1093/1860)
よく分からないのですが、 シート上に40×140=5600個のチェックボックスを作るつもりなのでしょうか? もしそうならコピー&ペーストで作るのは、指摘されている通り関連付けもそのままコピーされるので大変でしょう。 コピー&ペーストではなくマクロを使って作れば、5600個のチェックボックスをいっぺんに作ることができ、位置や関連付けも同時に設定することができます。 別のやりかたとして、チェックボックスを1個だけ作って、セルを選択したときにそのチェックボックスの位置を変えてチェックしてもらうという方法もあります。 また、チェックボックスを使わない方法としては、セルのダブルクリック(または右クリック)でセル値のTRUE,FALSEを切り替えるという方法もあります。 以上、ご参考まで。
お礼
nag0720様: ご回答、ありがとうございます。 マクロはまったくわからないので、もしお手すきの時間があれば、 お教えいただけると助かるのですが・・・ 甘えすぎですね。 だめでしたら、あきらめます(涙;;
お礼
お教えいただき、ありがとうございました。 でも、どのような状態になるのか、マクロの使い方そのものがわからないので、 あきらめます。 本当にありがとうございました。