
初めて質問させていただきます。マクロ超初心者です。
エクセル2007を使用しております。
マクロに初めて挑戦し、契約書に差しこんでおります。
うまく説明できないところがあると思いますが、ご了承ください。。。
シート1に契約書に差し込むデータが一覧表として作成してあります。
シート2に契約書のひな型を作成→シート1から契約内容を差し込む
見よう見まねでマクロを作成しました。
ここまではうまくいったのですが、どうしてもわからないところがあります。
シート1
A列 B列
A子 マンション
B子 アパート
C子 戸建
D子 テラスハウス
シート2へ差し込み
A列 B列 C列 D列 E列 F列 G列 H列
チェックBOX マンション チェックBOX アパート チェックBOX 戸建 チェックBOX B/D/F以外
もし、A子がマンションなら、シート2のA列チェックBOXにレ点が入るようにしたいです。
同様にB子・C子と差し込んだときに、一致するBOXにチェックが入るといったものにしたいです。
この説明で、お分かりいただけましたでしょうか?
どうか、お願いいたします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
>見よう見まねでマクロを作成しました。
>ここまではうまくいった
見よう見まねでうまくいったのは偶然です。
確実なものを積み上げていく癖をつけないと、
この先もこんな作り方では遠回りです。
何かあったときに自分で解決させるための対処の仕方を覚えておく必要あります。
コードを1行ずつ実行させるとか
コードの途中で変数の内容を表示させるとか
わからないことを明らかにさせていく手段はあります。
初期段階ではこういうのも覚えましょう。
「エクセルでお仕事」
初心者のよくある疑問・間違いや誤解
http://www.asahi-net.or.jp/~ef2o-inue/menu/menu0 …
これを知ってて進めるのと知らずに進めるのとでは全然違いますし、
こういうのを教えてくれる人が居ないならなおさらよーく見ておくことです。
掲示板での回答は、点数かせぎも多いので、
「答えは教えてもそれに至る解き方の過程までを教えることしない」、多々あります。
できるようになったんだけど、・・・は何かわからない、とかやっぱり疑問が残る等。
それから、
質問内容がわかりやすいと回答も早いです。
質問内容があいまいだと回答も遅いです。
がんばりましょう。
大変遅くなりました。
ご回答ありがとうございます。
まだまだ、勉強が足りまっせん。
基礎からがんばります!
ありがとうございました。
No.3
- 回答日時:
>逆使用がわかりません
逆使用なんて我流の用語だよ。意味判るが、どちらが逆か判らないよ。
ーー
Sheet2の仕組みが十分説明されていないので質問が不完全。
(1)Sheet1の1行(ある行)データでSheet2を完成後、印刷して、次に次の行のデータでSheet2を完成後印刷・・
差込印刷的なものをやるのか
(2)Sheet2で氏名を入力するとSheet1のその氏名の情報でSheet2を完成、すなわち検索システム画面表示的なものか
ーーー
(2)の場合
例データ
Sheet1
A列 B列
氏名住所タイプ
a1
b2
c3
ーー
Sheet2
A1セルーー氏名を入力(指定する)するセル
チェックボックスを3つ設ける
ーーー
Sheet2のChangeイベントに
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
Dim ob As OLEObject
For Each ob In Me.OLEObjects
If ob.Name Like "CheckBox*" Then _
ob.Object.Value = False
Next
'---
x = Cells(1, "A")
MsgBox x
With Worksheets("Sheet1")
y = .Range("A1:A10").Find(x).Row
MsgBox y
z = .Cells(y, "B")
MsgBox z
End With
With Worksheets("Sheet2")
.OLEObjects("CheckBox" & z).Object.Value = True
End With
Exit Sub
Select Case z '以下は普通のやり方(参考)
Case 1
Worksheets("Sheet2").CheckBox1 = True
Case 2
Worksheets("Sheet2").CheckBox2 = True
Case 3
Worksheets("Sheet2").CheckBox3 = True
End Select
End If
End Sub
納得したらMsgbox行は削除のこと。
ーーー
Sheet2のA1に
例えば
bを入れると、2番目のチェックボックスがON
cを入れると、3番目のチェックボックスがON
になる。
ーーー
仕様が(1)ならSheet1のデータA列で第1行から順に氏名を取って、Sheet2のA1セルにセットして、そして印刷をする、を最終行まで繰り返す。
ーー
この質問は丸投げで、質問者がやるには、現状ではちと速い課題ではないかと思う。
イベントの考えや、VBAにおけるコントロール配列は使えないが代用の問題(結構有名)など勉強したことも無いのだろうから。
地道にコントロールの問題点のことを勉強してから質問すること。
フォームにコントロールを置くときとワークシートに置くときと違いがあったりする難しさが在ってやさしくは無いのだ。
大変遅くなりました。
ありがとうございます。
やはり、質問の仕方が的確でなかったようで、申し訳ありませんでした。
早速とりかかっておりますが、うまくできるかは・・・
私には、まだまだ難しすぎますが、格闘してみます!
まだまだ、初心者なので、わからないことも多いのですが、がんばってやってみます。
ありがとうございました。
No.1
- 回答日時:
各チェックボックスのシートとの連携のプロパティを設定しておいてそのセルへ TRUE/FALSEを設定してやればチェックマークがつきます
コントロールが フォーム用のチェックボックスならコントロールを右クリックしてコントールの書式設定のコントロールタブにある リンクするセル
コントロールツールボックスのチェックボックスなら 右クリックして プロパティを開き
LinkedCell
ここに C1 とか E2とか シートのセル番地を入力しておきます
差込み用のマクロの中で
マンションの場合
Range("C1").Value =True
Range("E1").Value =False
Range("G1").Value =False
Range("H1").Value =False
アパートなら
Range("C1").Value =False
Range("E1").Value =True
Range("G1").Value =False
Range("H1").Value =False
といった具合にすればいいように思います
この回答への補足
うまく説明できていないので、とりあえず作成したものを貼りつけました。
これが完成すれば、大量の契約書データが処理できそうで、初めてマクロに挑戦した次第です。
丸投げと御感じの方もいるかと思いますが、どうか宜しくお願いします。
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub 新印刷()
Const org As String = "値と数値の書式"
Const prs As String = "新 重説・契約"
Const strt As Integer = 3
Dim idx, fromL, toL As Long
Dim oSht, pSht As Worksheet
Dim res, res2
Dim rs As Range
Set oSht = Worksheets(org)
Set pSht = Worksheets(prs)
・
・
・
For idx = fromL To toL
pSht.Range("A3").Value = oSht.Cells(idx, "D").Value
pSht.Range("B47").Value = oSht.Cells(idx, "MZ").Value
pSht.Range("I60").Value = oSht.Cells(idx, "MP").Value
・
・
・
ここに、もし
oSht.Cells(idx, "MF").Valueに ”マンション”と入っていれば
pSht.Range("AH8").Value のセルにあるチェックボックスにチェックが入る
”アパート”なら
pSht.Range("AN8").Value のセルにあるチェックボックスにチェックが入る
”戸建”なら
pSht.Range("AN8").Value のセルにあるチェックボックスにチェックが入る
”マンション。アパート・戸建以外”
pSht.Range("AX8").Value のセルにあるチェックボックスにチェックが入る
といった具合にしたいのです。
どうぞ、宜しくお願い致します。
...
補足の方に返答していました。
すいません
うまく説明できていないので、とりあえず作成したものを貼りつけました。
これが完成すれば、大量の契約書データが処理できそうで、初めてマクロに挑戦した次第です。
丸投げと御感じの方もいるかと思いますが、どうか宜しくお願いします。
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub 新印刷()
Const org As String = "値と数値の書式"
Const prs As String = "新 重説・契約"
Const strt As Integer = 3
Dim idx, fromL, toL As Long
Dim oSht, pSht As Worksheet
Dim res, res2
Dim rs As Range
Set oSht = Worksheets(org)
Set pSht = Worksheets(prs)
・
・
・
For idx = fromL To toL
pSht.Range("A3").Value = oSht.Cells(idx, "D").Value
pSht.Range("B47").Value = oSht.Cells(idx, "MZ").Value
pSht.Range("I60").Value = oSht.Cells(idx, "MP").Value
・
・
・
ここに、もし
oSht.Cells(idx, "MF").Valueに ”マンション”と入っていれば
pSht.Range("AH8").Value のセルにあるチェックボックスにチェックが入る
”アパート”なら
pSht.Range("AN8").Value のセルにあるチェックボックスにチェックが入る
”戸建”なら
pSht.Range("AN8").Value のセルにあるチェックボックスにチェックが入る
”マンション。アパート・戸建以外”
pSht.Range("AX8").Value のセルにあるチェックボックスにチェックが入る
といった具合にしたいのです。
どうぞ、宜しくお願い致します。
...
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルVBAでチェックボックスにチェックを入れる 1 2022/09/14 00:52
- Visual Basic(VBA) VBAで最新のデータを別シートに転記する方法をお教えください。 3 2022/04/07 19:20
- Visual Basic(VBA) VBAで、1つのエクセルで、2つのシートからもう1つのシートに条件のある転記コードを教えてください。 1 2023/03/16 18:07
- Excel(エクセル) エクセルシートのデータを1列飛ばしで別ブックのシートに貼り付けるマクロが知りたい 2 2023/06/05 22:37
- Excel(エクセル) Excelで質問です! 現在マクロを勉強中の初心者です。 以下のような表から、会社名が空白のもの以外 2 2022/06/14 12:16
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい 9 2022/08/24 13:23
- Visual Basic(VBA) VBA 最終行まで数式をコピーする 3 2023/01/03 15:44
- その他(Microsoft Office) エクセルマクロ オートフィルターでで選択コピー 2 2022/04/18 11:05
- Excel(エクセル) マクロか関数で処理したいのですが、教えて頂けませんか。 8 2022/10/31 15:18
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Vba Array関数について教えてく...
-
【マクロ】シートの変数へ入れ...
-
【マクロ】並び替えの範囲が、...
-
エクセルのVBAコードと数式につ...
-
エクセルのマクロについて教え...
-
エクセルの改行について
-
【VBA】 結合セルに複数画像と...
-
vbsでのwebフォームへの入力制限?
-
算術演算子「¥」の意味について
-
【マクロ】売上一覧YYYYMMDDHHS...
-
【マクロ】開いているブックの...
-
Vba セルの4辺について罫線が有...
-
vb.net(vs2022)のtextboxのデザ...
-
ダブルクリックで貼り付けた画...
-
VBAの「To」という語句について
-
VBAでユーザーフォームを指定回...
-
VBAでCOPYを繰り返すと、処理が...
-
【マクロ】変数を使った、文字...
-
エクセルのVBAコードについて教...
-
ワードの図形にマクロを登録で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Vba セルの4辺について罫線が有...
-
vbsでのwebフォームへの入力制限?
-
【ExcelVBA】5万行以上のデー...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
【マクロ】開いているブックの...
-
【マクロ】並び替えの範囲が、...
-
エクセルの改行について
-
エクセルのマクロについて教え...
-
vb.net(vs2022)のtextboxのデザ...
-
VBAでCOPYを繰り返すと、処理が...
-
VBA ユーザーフォーム ボタンク...
-
エクセルのVBAコードと数式につ...
-
エクセルのVBAコードについて教...
-
[VB.net] ボタン(Flat)のEnable...
-
【マクロ】変数を使った、文字...
-
改行文字「vbCrLf」とは
-
質問58753 このコードでうまく...
-
【マクロ】シートの変数へ入れ...
-
ワードの図形にマクロを登録で...
-
算術演算子「¥」の意味について
おすすめ情報