アクセス2000を使っています。
レポート中の「納品」という名前をつけたテキストボックスに、「**年**月**日に納品します。」という文字列を表示させようとしています。
「**年**月**日」の部分は「納品日」というデータなのでテキストボックス「納品」のコントロールソースに、下記の式を記述しました。
 =[納品日] & "に納品します。"
これで、一応、表示をすることはできたのですが、「**年**月**日」の部分だけ、太字にして下線を入れられないか、との要望があり、それができなくて困っています。
一つのテキストボックスに無理に表示しないで、「納品日」の部分と、「に納品します。」の部分の二つに分ければ、簡単に書式の設定を変えられるのですが、このやり方をすると、プリンターの種類によって、文字が重なるという現象が生じてしまうので、どうしても一つのテキストボックス内に表示させたいのです。
 誰か、このように、一つのテキストボックス内の一部分だけに下線を引いたり、太字にする方法をしりませんでしょうか?
 教えて下さい。

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

A 回答 (2件)

>プリンターの種類によって、文字が重なるという現象が



プリンタのプロパティが、「プリンタフォントを使う」になっているせいです。
プリンタのフォントを使うと、データ量が少なくて済みますが
必ずしもパソコンのフォントと同じ訳ではないので
文字間隔が若干違います。
ワープロ程度ならさほど問題になりませんが
データが隙間無く並ぶような帳票だと文字が重なったりします。
    • good
    • 0

>一つのテキストボックス内の一部分だけに下線


たぶんVBAでは無いと思います。

>プリンターの種類によって、文字が重なるという現象が生じてしまう
単純にフォントの問題では?
現在の使用フォントを定型フォントに置き換えてみてはどうでしょう?
MSpゴシック→MSゴシック

的外れだったらゴメンなさい。
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

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

Qチェックボックスの内容をテキストボックスに表示

フォームにチェックボックスをいくつか作成しました。
チェックした内容をテキストボックスに羅列して表示するには
どうしたらいいのでしょうか?

□A
□B
□C




とあり、AとCにチェックを入れたら
テキストボックスに「A C」と表示させるようにしたいです。

お願いいたします!

Aベストアンサー

VBAになってしまいますが一案として・・。
フォームは単票。
チェックボックス名は、A、B、・・・
テキストボックス名は、テキスト1
だとしたら
コマンドボックスのクリック時イベントに

Private Sub コマンド0_Click()
Dim ctl As Control
Dim buf As Variant

For Each ctl In Me.Controls
If TypeName(ctl) = "checkbox" Then
  If ctl.Value = -1 Then
    buf = buf & ctl.Name & " "
  End If
End If
Next

Me!テキスト1 = Left(buf, Len(buf) - 1)
End Sub
のように。
上記の場合チェックボックスを総なめしてしまっています。
フォームが単票以外なら
フォームの元になっているテーブル・クエリの説明が必要です。
とりあえず、こんなところで。

Qチェックボックスの配置順にテキストボックスに表示

accessのフォームにチェックボックスを配置し
チェックされたものをテキストボックスに表示させています。

■A ■B □C □D ■E

となっていたら、テキストボックスに

A B E

と表示させています。

チェックボックスの真ん中に新しくチェックボックスを追加すると
テキストボックス内には、追加したものが最後に表示されていまいます。

■A ■B □C ■Z □D ■E

とすると、テキストボックスには

A B Z E
と表示させたいのに
A B E Z
表示されてしまいます。

いちから順番どおりに作り直せばいいのですが
かなりたくさんチェックボックスがあるうえに
上司から、この先も何度も作り直しを指示されそうです・・・。

できれば簡単に、配置した順にテキストボックスに表示されるようにしたいです。

チェックボックスの配置順に
テキストボックスに文字を表示させる方法を教えてください!

Aベストアンサー

VBA は、なんとか大丈夫になったでしょうか

VBA での記述になります。
状況が不明なところもありますが、変更しやすい(?)方法での記述にしてみます。
説明は後にして、以下をフォームに記述しておきます。

Private Function MojiGet() As String
  Dim ctl As Control
  Dim sS As String

  With New ADODB.Recordset
    .Fields.Append "名", adVarChar, 255
    .Fields.Append "値", adBoolean
    .Fields.Append "左", adInteger
    .Fields.Append "順", adInteger
    .CursorLocation = adUseClient
    .Open

    For Each ctl In Me.Controls
      Select Case ctl.ControlType
        Case acCheckBox
          sS = ctl.Name
          If (ctl.Controls.Count > 0) Then
            sS = ctl.Controls(0).Caption
          End If
          .AddNew
          .Fields("名") = sS
          .Fields("値") = ctl.Value
          .Fields("左") = ctl.Left
          .Fields("順") = ctl.TabIndex
          .Update
      End Select
    Next

    .Filter = "値 = True"
    .Sort = "左"

    sS = ""
    While (Not .EOF)
      sS = sS & " " & .Fields("名")
      .MoveNext
    Wend
    .Close

    MojiGet = Mid(sS, 2)
  End With
End Function

チェックボックスの状態を順次チェックしていくわけですが、
後での並べ替え( Sort )が楽なように ADO のレコードセットを使っておきます。

> A B Z E
> と表示させたいのに
> A B E Z
> 表示されてしまいます。

これは、おそらく
    For Each ctl In Me.Controls
      Select Case ctl.ControlType

とした場合の、出現順(作った順)で処理されているのだと思います。
上記の記述では、チェックボックスなら
・名前を覚える(チェックボックスにラベルがくっついていたらラベルの標題)
・値を覚える
・左位置を覚える
・タブ移動順を覚える

で、この4つを全部覚えたら
・値 = True で絞込み( Filter )
・並び替えを、左位置昇順
この結果で、「名」を繋げていきます
Filter は使わずに、True の時のみレコードセットに追加・・・でも良いと思います。
並び順をタブ移動順に変更するのも容易です。

また、2段・3段になっていて、上の段から・・・とかなら
"上" フィールドを追加して、ctl.Top も覚えておいてから
Sort で "上, 左" とすれば順に得られれます。( "左, 上" とするとまた違った順に)
もちろん、横並びの Top 値や Left 値は同じにしておく必要はありますが・・・
でも、タブ移動順の方が使えるのかも?

ここで、関数名を MojiGet としたので、テキストボックスに設定する時には
Me.テキストボックス = MojiGet
で、できると思います。

テキストボックスのコントロールソースに =MojiGet() としても表示できますが、
更新のタイミングがうまくとれないと思います。
( Me.Recalc 等で表示更新はされますが)
その時には、このチェックボックスが変更されたら・・・・
という意味で、引数に与えるようにします。( Access さんに教えてあげます)
関数側では、引数は必要としていないので、ダミー的な受けにしておきます。

Private Function MojiGet2(ParamArray vDmy()) As String
  MojiGet2 = MojiGet
End Function

テキストボックスのコントロールソースには、
チェックボックス「A」「B」「C」に変更あったら表示を更新したい場合
 =MojiGet2([A],[B],[C])
とでも記述しておきます。

なお、フォーム上に上記とは別の用途のチェックボックスがあるのであれば、
チェックボックスのプロパティにある「タグ」に識別子を埋めておきます。
「タグ」に設定する文字列は何でもよいので、
例えば、対象外のチェックボックスには設定なし・・・だけとすると

    For Each ctl In Me.Controls
      Select Case ctl.ControlType
        Case acCheckBox
          If (Len(ctl.Tag) > 0) Then ' ★こんな感じの判別
            sS = ctl.Name


※ 冒頭に示した内容では、毎回順を得ていますが、
 順を求めるのは1回で良いので、Form_Load とかでやっておいて、
 以降は求まっていた順を使いながら、True/False を判別・・・・でも良いかも

 ただ、フォーム上では操作が絡むので、応答に満足できれば、このままでも・・・

※ 同じような事をするフォームが複数あるのであれば、
 関数部分を標準モジュールに移動させ、
 ・ Private → Public
 ・ Me.Controls → CodeContextObject.Controls
 の変更で動くかも(未検証)

※ ADO のレコードセットを使わなくても、「タグ」に順を設定するとか・・・
 でも、追加した後、その「タグ」修正を間違わない・・・注意が必要ですね
 上記では、追加したら「タグ」に何かを入れておけば・・・・楽かな?
 いろいろ方法はあると思います。


参考にする/しない等々、自己責任でお願いします。

VBA は、なんとか大丈夫になったでしょうか

VBA での記述になります。
状況が不明なところもありますが、変更しやすい(?)方法での記述にしてみます。
説明は後にして、以下をフォームに記述しておきます。

Private Function MojiGet() As String
  Dim ctl As Control
  Dim sS As String

  With New ADODB.Recordset
    .Fields.Append "名", adVarChar, 255
    .Fields.Append "値", adBoolean
    .Fields.Append "左", adInteger
    .Fields.Append "順", adInteger
    ....続きを読む

Qエクセルでテキストファイルからフォームのテキストボックスにテキスト挿入するマクロ

マクロでフォームのテキストボックスに直接テキストファイルからテキストを挿入したいのですが出来ますか?
opentextでエクセルシートに入れてからフォームにコピーすることはできたのですが、それだと重くなってしまうので直接取り込みたいんですがうまくいきません。
VBやJAVAのreadlineのようなものは使えないんでしょうか。

Aベストアンサー

>VBやJAVAのreadlineのようなものは使えないんでしょうか。

LineInput がありますよ。
http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110_030.html
http://rd.search.goo.ne.jp/click?DEST=http%3A%2F%2Fofficetanaka.net%2Fexcel%2Fvba%2Fstatement%2FLineInput.htm&no=2

Qテキストボックス内の文字のふりがな表示

テキストボックスで文字を入力して,その文字にふりがなをふる方法を教えてください。
宜しくお願いします。

Aベストアンサー

Excelのテキストボックスではルビは振れなかったように思います。
ただしExcel2000です。バージョンが違えば機能があるかもしれません。

Wordで線なし、塗りつぶしなしのテキストボックスを作り、ルビを振ります。
Excelを立ち上げ、セルを右クリックして形式を選択して貼り付けで、拡張メタファイルで貼り付けてみてください。
線や塗りつぶしはExcelに貼り付けてからでも設定できます。

また別の方法もあります。
それはWordを使わず、Excelのセルを図として貼り付ける方法です。
あるセルに文字を入力し、書式→ふりがな→表示または必要なら設定として、
ふりがなを表示させておきます。

このセルをコピー、Shiftを押しながら編集メニュー→図のリンク貼り付け。
セルとリンクされた図ができます。

Qaccess 検索結果をテキストボックスに表示させる方法

過去の質問見たのですが、どうもうまくできません。

現在の状況ですが、
「商品」「詳細」テーブルがあります。
各レコードの商品にはユニークなコードを付番してあります。
現在、詳細フォームを作成中です。

この、詳細フォーム上にテキストボックスを作成、コード入力をします。
次に検索ボタンを押した時、同じ詳細フォーム上の「名称」「規格」・・などのフィールドに商品テーブルの内容を自動入力させたいのです。
意味、わかりますでしょうか。

なんか、色々試して混乱してきてしまいました。
初心者です。よろしくお願いします。

Aベストアンサー

始めのテキストボックスをコンボボックスにすれば簡単です。

コンボボックスの 2 列目のデータの値を取得する方法
http://support.microsoft.com/default.aspx?scid=kb;ja;879798

それ以外だと、検索ボタンのクリックイベントで
フィールド名=Dblookup("フィールド名","テーブル名","[コード]='" & Me.テキストボックス名 & "'")
で各フィールドに値をセットになります。


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

おすすめ情報