現在、履歴をとるモジュール(beforeupdateとafterupdate利用)なのですが、今は変更が起こったかどうかを見て履歴を書いているのですが、これを更新ボタンをクリックしたら。に変更は可能でしょうか?(これは何故かと言いますと、コンボボックスで選択を変えただけでは変更が起こっていないとみなされて履歴を取ってくれないのです。それに変更をした!という気にもなるので。よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

現在


If Ctr.ControlType = 109 Then

と記述されているところを

If ((Ctr.ControlType = acTextBox) or (Ctr.ControlType = acComboBox)) Then

へ、変更してみてください。
    • good
    • 0
この回答へのお礼

本当に本当にありがとうございます。m(__)m

やっぱり、更新ボタンを押したら・・・
というのは、難しいんですね。(*_*)

お礼日時:2001/11/22 22:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Qワードでコントロールツールボックスのテキストボックスのフォントサイズを変更するにはどうすればいいですか?

ワードでコントロールツールボックスのテキストボックスを挿入して文字入力ができる枠を作りました。
この枠内の文字のフォントサイズを変更するにはどうしたらいいでしょうか?
どなたかご存知の方がいらっしゃいましたら、教えてください。
よろしくお願いいたします。

Aベストアンサー

ボタン上のコメントの書き替えは、
オブジェクトを右クリックし、プロパティを開きます。
そのプロパティの項目別タブを選び、
フォントのFontセルのフォント名(最初はMS 明朝になっていると思います。)
の横に『...』のボタンが出ると思うので、
それを押せば、フォント変更のダイアログより変更出来ると
思います。

Qフォームのコンボボックスを使用しての更新

Access2000を使用しております。
フォームのチェックボックスを使ってテーブルを更新し様としたとき、デフォルトでは、チェックを入れると-1、チェックを入れないと0で更新されるようになっていますが、
これをチェックを入れると1、チェックを入れないと0で更新する方法がありましたら教えてください。

Aベストアンサー

こんにちは。maruru01です。

>これをチェックを入れると1、チェックを入れないと0で更新
何故そのようにしたいのでしょうか?
テーブル上の表示もチェックボックスにすれば、値を意識する必要はありませんが。
ひょっとして、データをエクスポートした時に「-1」じゃなくて、「1」にしたいのでしょうか?
それなら、そのYes/No型のフィールドを1/0に変換するクエリを作成して、それをエクスポートすればいいと思います。
[テーブル1]の[チェック]フィールドを変換する場合、クエリの[フィールド]欄に、

チェック: IIf([テーブル1]![チェック],1,0)

と入れればOKです。
で、他のフィールドは普通に表示します。
元の[チェック]フィールドは表示しません。

Qユーザーフォーム上にあるコンボボックスの重複選択をできなくするには?

ユーザーフォーム上に10個のコンボボックスがあり
それぞれ名前をcb1からcb10とします。

これらのコンボボックスには同じリストを取得して
表示していますが、選択するときには重複させないように
したいと思っています。

例を挙げると、
リストの値が”東京”、”大阪”、”名古屋”として、
cb1で”東京”を選択している場合は、残りのcb2~cb10では
”東京”を選択できないように、もしくは選択したときに
”すでに選択済みです”みたいなメッセージを表示させて
キャンセル状態に戻す、みたいにしたいのですが
スマートな書き方がわかりません。

※力業でそれぞれのコンボボックスのチェンジイベントで
他のコンボボックスの値を見に行って、重複があれば
メッセージを表示させるという方法ならわかるのですが
実際のコンボボックスの数が50近くあるためできれば
避けたいと思っています。

達人の皆様、どうぞ宜しくお願いします。

Aベストアンサー

こんにちは。

>リストの値が”東京”、”大阪”、”名古屋”として、

こんにちは。ちょっとヘンだなって思ったら、それは、本来、コンボボックスではしないのですね。#1/2 さんが、書かれているように、同じソースを複数選択する場合は、ListBox にして、それを、MultiSelect -2 にします。(2つ目以降は、Ctrl をおしながら、クリックします)

それに、コンボボックスが50個というのは多すぎますね。もし、同じソースなら、ListBox ひとつで足ります。

>※力業でそれぞれのコンボボックスのチェンジイベントで他のコンボボックスの値を見に行って、重複があればメッセージを表示させるという方法ならわかるのですが

もし、どうしてもしたければ、一旦、モジュールレベルの配列の中に入れて、ループ検索するしかないと思います。

QThisWorkBookモジュールとSheetモジュールの両立

エクセル2003でマクロを組んでいます。

Sheet1,Sheet2の2つのシートがあり、
片方のシートの"A4:G10"の範囲に値を書き込むと、もう片方の同じ位置に同じ値が書き込まれるようなマクロを組みたいです。
以前ここで教えていただいたものを改変して以下を作りました(ThisWorkBookモジュールです)。
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim r As Range
Dim Num As Integer
Dim S As String, Sh_name As String
Sh_name = ActiveSheet.Name

Set r = Intersect(Target, Range("A4:G10"))

If Not (r Is Nothing) Then
Application.EnableEvents = False
For Num = 1 To 2
S = "Sheet" & Num
If S <> Sh_name Then
Worksheets(S).Range(r.Address).Value = r.Value
End If
Next
Application.EnableEvents = True

End If
End Sub
ここまでは正常に動作します。

また、
Sheet1とSheet2のモジュールに、
A列のセルに値が入力された場合、同じ行のC列のセルの色を塗るという記述をしています。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
Cells(Target.Row, 3).Interior.ColorIndex = 5
End If
End Sub

これらを同時に生かしたいのですが、
どのように書けばいいでしょうか。
EnableEvents = False/Trueを消してしまうと、
Worksheets(S).Range(r.Address).Value = r.Valueが実行されるたびにThisWorkBookモジュールが動いているようです。
そして2回目のSet r = Intersect(Target, Range("A4:G10"))でエラーが出ます。
(エラーは出ずとも延々と(無限ではない回数)ThisWorkBookモジュールを繰り返したコードもありました。)

よろしくお願いします。

エクセル2003でマクロを組んでいます。

Sheet1,Sheet2の2つのシートがあり、
片方のシートの"A4:G10"の範囲に値を書き込むと、もう片方の同じ位置に同じ値が書き込まれるようなマクロを組みたいです。
以前ここで教えていただいたものを改変して以下を作りました(ThisWorkBookモジュールです)。
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim r As Range
Dim Num As Integer
Dim S As String, Sh_name As String
Sh_name = ActiveSheet.Nam...続きを読む

Aベストアンサー

補足:

>今考えうる「全て」は、値、フォントの色、セル背景色、罫線です。
もし、フォントの色、セルの背景色、罫線のイベントで取ろうとしたら、インスタンスを作らないといけないので、かなり長いコードになるし、まったく発想が違います。今の延長上ではありませんから、これ以上の方法を願うのでしたら、「作業グループ」を取ってください。

例:
 Worksheets(Array("Sheet1", "Sheet2")).Select

そうでなかったら、Worksheet_Activate() などで、特定の範囲をコピーしたほうが楽です。
以前も、同じような質問が出ていましたが、同期と言っても、二つのWindowを開くなら別ですが、そうでなければ、見えないシートに対しては、開けるまでは、正確にはどうなっているかはわからないのですから。(値は、参照式があるので別ですが。)

>(3)は、ThisWorkBookモジュールで(2)を行った時にSheet2のシートモジュールが動いて欲しかったのですが、

それをするなら、もともと、Sheet イベントは不必要です。
サブルーチン・マクロを呼び出せばよいのです。

'ThisWorkbook モジュール
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
 Application.EnableEvents = False
 If StrComp(Sh.Name, "Sheet1") = 0 And Not Intersect(Target, Range("A4:G10")) Is Nothing Then
   Worksheets("Sheet2").Range(Target.Address).Value = Target.Value
   Call WorksheetsChange(Target.Address)
 ElseIf StrComp(Sh.Name, "Sheet2") = 0 And Not Intersect(Target, Range("A4:G10")) Is Nothing Then
   Worksheets("Sheet1").Range(Target.Address).Value = Target.Value
   Call WorksheetsChange(Target.Address)
 End If
 Application.EnableEvents = True
End Sub


'標準モジュール
'プロシージャ名は、紛らわしい名前をあえてつけた

Sub WorksheetsChange(myTarget As String)
Dim Sh As Worksheet
  For Each Sh In Worksheets(Array("Sheet1", "Sheet2"))
  With Sh
  If .Range(myTarget).Column = 1 Then
    If .Range(myTarget).Cells(1).Value <> "" Then
      .Range(myTarget).Offset(, 2).Interior.ColorIndex = 5
    Else
      .Range(myTarget).Offset(, 2).Interior.ColorIndex = xlColorIndexNone
    End If
  End If
  End With
  Next Sh
End Sub

補足:

>今考えうる「全て」は、値、フォントの色、セル背景色、罫線です。
もし、フォントの色、セルの背景色、罫線のイベントで取ろうとしたら、インスタンスを作らないといけないので、かなり長いコードになるし、まったく発想が違います。今の延長上ではありませんから、これ以上の方法を願うのでしたら、「作業グループ」を取ってください。

例:
 Worksheets(Array("Sheet1", "Sheet2")).Select

そうでなかったら、Worksheet_Activate() などで、特定の範囲をコピーしたほうが楽です。
以前も...続きを読む

Qコンボボックスの文字を大きくしたい

このサイトの中でコンボボックスの作成方法を知り利用致しました。
  (手順)
   (1)任意のセルにコンボボックスに反映させたい文字を作成する
   (2)メニューバーより
    [データ]⇒[入力規則]
     [設定]タブより”入力値の種類”を”リスト”にし、
      元の値を(1)で作成した文字を選択する

ですが、この方法では、コンボボックスで表示される文字が
小さく見づらいものでした。
コンボボックス内で表示される文字の大きさを変更する方法を
教えていただけないでしょうか?

Aベストアンサー

レジストリを操作すれば出来ます。
でも,ご利用のソフトのバージョンはおろか,ご利用のソフト名すら実はご相談に書かれていないでは,あぶなっかしくてちょっとお話しするのを躊躇してしまいます。


添付図は,仮にExcel2003を例に操作してみた結果です。
(左下:変更前 右下:変更後)

ネットで「Excel DlgFont」をキーワードにさくっと検索してみると多数ヒットしますので,実際にあなたがご利用になるソフトのバージョンを確認しながら,ご自分の責任で調査して行ってみてください。
レジストリは万一操作を失敗すると,最悪パソコンが起動しなくなるなどのリスクもあります。注意して操作してください。


このカテゴリの人気Q&Aランキング

おすすめ情報