よく住所録を、レポートでプリンタに出力するのですが、人の名前や住所の長さが毎回違う為、調整に凄い時間がかかります。

A4用紙にきっちりと収めないといけないので、収まりきらないときは、名前のフリガナを少し省いたりすることもあります。

今はLen関数を使って文字の長さをある程度計って、おおまかに調整しているのですが、半角文字などが入ってくると、正確な長さが出なかったりします。

Accessにある機能を使って、レポートで出力するさいの、フィールドの幅を自動調整(フィールドに格納されている最大文字数が入る幅に調整)はできるのでしょうか?できないのでしたら、他に良い方法などございましたら、アドバイスして下さいませ!

宜しくお願いします。

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

A 回答 (3件)

データの量に応じて、フィールドの横幅を自動調整することはできませんが、


縦幅なら調整できます。

イメージとしては、次のような感じです。

  データが少ない場合
  ┌───────┐
  │ああああああ │
  └───────┘

  データが多い場合
  ┌───────┐
  │あああああああ│
  │あああああああ│
  │あああああああ│
  │あああ    │
  └───────┘

上記のようなパターンでもよろしければ、
次の操作で、レポートのデザインビューを使い
プロパティの設定を行ってください。

1)レポートをデザインビューで表示
2)自動調整したいコントロールを選択
3)プロパティシートを表示
4)[書式]タブ内の[印刷時拡張]を[はい]に設定
5)プロパティシートが表示されたまま、
  自動調整したいコントロールのあるセクションを選択
    プロパティシートのタイトルバーが
    「セクション:○○」と表示されます
6)[書式]タブ内の[印刷時拡張]を[はい]に設定

以上です。
これで、データ量が多くなったときは、
縦にコントロールが伸びるようになります。

お役に立てばよいですが。
    • good
    • 0
この回答へのお礼

文字がはみ出るレコードを探すのに使ってます
作業が少し楽になりました、ありがとうございます。

お礼日時:2001/04/19 14:54

クエリーで使用するのでしたら vbFromUnicode を 128 とすればいいです。



LenB(StrConv(文字列, 128))
    • good
    • 0
この回答へのお礼

LenBだと、期待どおりの
結果が得られなくて、???だったのですが
これで半角文字を識別できます
ありがとうございました♪

お礼日時:2001/04/23 10:59

Len関数は文字数が返るので全角・半角の判断では使えません。


LenB(StrConv(文字列, vbFromUnicode))
とすればバイト数が算出できます。半角は 1、全角は 2として文字列のバイト数が
求められます。
フォントやフォントサイズによって微妙に調整が必要かと思いますが、半角文字の
幅さえわかれば、このバイト数を乗じて幅を変えることができるかもしれません。

直接の回答じゃないですが、参考になれば幸いです。

この回答への補足

半角全角を区別してバイト数を出す方法が便利そうなんで、ぜひ使えるようになりたいんですが、上の

LenB(StrConv(文字列, vbFromUnicode))

をクエリで使用すると vbFromUnicode が
フィールド名として認識されてしまうのですが・・・。

補足日時:2001/04/19 14:47
    • good
    • 0

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

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

このQ&Aを見た人はこんなQ&Aも見ています

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

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

QExcel VBAで、B列の幅を、既存のグラフの幅に設定したい。

VBA初心者です。
ワークシート上にグラフを作成した後(例えば「グラフ1」とします)、B列の幅を作成したグラフの幅と同じに設定するには、どのように記述すればよいのしょうか?

Columns("B").ColumnWidth = ActiveSheet.Shapes("グラフ1").Width

Columns("B").Width = ActiveSheet.Shapes("グラフ1").Width

Columns("B").ColumnWidth = ActiveSheet.Shapes("グラフ1").ColumnWidth

どれもうまくいきませんでした。よろしくお願いします。

Aベストアンサー

こんにちは。Wendy02です。

>ColumnWidthのヘルプによると
>解説
>・
>とのことです。

その書き方は、かなり手厳しく感じました。ヘルプで調べてから回答を書きなさい、ということですね。私の書き方がまずかったようですね。失礼しました。

 ただ、そのヘルプの内容は、若干、意味が曖昧です。仮に等幅フォントであっても、本当に、1文字の積み重ねが、列幅になるとお思いになっているのでしたら、それは違います。セル幅は、PIXEL値(Long型)に丸められて、それを逆算して、例えば「8.38」 という数字が出てきているのであって、決して、1文字のフォントの長さが、列幅にそのまま反映しているわけではありません。ロジックでいうと、「AはBによって作られているが、BはAには等しからず」ということになりますね。

変換率の出し方は、以下のようになりますが、Constの定数はやめ、ALPHAを変数にして、以下のようにすればよいはずです。

Dim Alpha As Double
Alpha = ActiveSheet.Cells(256).Width / ActiveSheet.StandardWidth

しょせん、理論値では不可能(だと思う)ですから、影響のないセルに対して、実測値を元に、変換値を出したにすぎませんが。

これで、問題なくできるはずです。

こんにちは。Wendy02です。

>ColumnWidthのヘルプによると
>解説
>・
>とのことです。

その書き方は、かなり手厳しく感じました。ヘルプで調べてから回答を書きなさい、ということですね。私の書き方がまずかったようですね。失礼しました。

 ただ、そのヘルプの内容は、若干、意味が曖昧です。仮に等幅フォントであっても、本当に、1文字の積み重ねが、列幅になるとお思いになっているのでしたら、それは違います。セル幅は、PIXEL値(Long型)に丸められて、それを逆算して、例えば「8.38」 ...続きを読む

Q住所録 郵便番号変換ウィザードで フリガナを表示させるには?

住所録を作成しています。

H列に 郵便番号 を入力し、
I列にH列の郵便番号を「郵便番号変換ウィザード」を使って、住所を表示させます。
J列にはあらかじめ
  
=ASC(PHONETIC(I6))
   ~
=ASC(PHONETIC(I2000))


と入れてあります。

たとえば、郵便番号をH列に10件入力してウィザードで変換した場合、J列(フリガナ)にはI列と同じ文字(漢字や数字)が表示されてしまいます。それを、フリガナに変換させるのに、自分の知っている方法は、I列のセル1つを選択し、
shift + Alt + ↑  のキーを同時に押して、
I列の漢字の上にフリガナを表示させ、確認した後に(読みに違いがあればここで修正)、
Enter Enter と打ち、確定させると、J列にフリガナが表示されます。

これを、一気にJ列にフリガナを表示させる方法は無いでしょうか?または、もう少し効率の良い方法でもかまいません。

(フリガナは、おおむね合っているので、確認後、違うものだけ、後から修正しようと思っています)

住所録を作成しています。

H列に 郵便番号 を入力し、
I列にH列の郵便番号を「郵便番号変換ウィザード」を使って、住所を表示させます。
J列にはあらかじめ
  
=ASC(PHONETIC(I6))
   ~
=ASC(PHONETIC(I2000))


と入れてあります。

たとえば、郵便番号をH列に10件入力してウィザードで変換した場合、J列(フリガナ)にはI列と同じ文字(漢字や数字)が表示されてしまいます。それを、フリガナに変換させるのに、自分の知っている方法は、I列のセル1つを選択し、
shift + Alt ...続きを読む

Aベストアンサー

takiboです。はじめに、以後の説明を分かりやすくするためにもマクロのメッセージが出ない(マクロの無い)状態にしておきましょう。
マクロのメッセージが消えない件に関してはこちら読んでください(ここで書くと長くなるので横着します)
『マクロの削除について』 http://okwave.jp/kotaeru.php3?q=1557529

メッセージが出なくなったら本題へ戻ります。

まず、前回紹介した方法はごくごく簡単な、その時のみ作動するものです。
面倒でなければ前回の方法をその都度使ってもかまいませんが、繰り返し使うのであればマクロとして登録したほうが便利でしょう。
手順は以下の通りです。
(1) [Alt] + [F11] で VisualBasicEditor の画面を起動します
(2) メニューの [挿入(I)]→[標準モジュール(M)] とすすむと、標準モジュールというフォルダと、その下に Module1 というアイコンが作られます
(3) (2)で出てきたコードウィンドウ(通常右側の何も書かれていない部分)に以下の3行を入力、または貼り付けします
Sub FURIGANA()
  Selection.SetPhonetic
End Sub
(4) VisualBasicEditor の画面を閉じてエクセルの画面に戻ります

マクロを使う手順は以下の通りです。
(1) IMEの郵便番号辞書のチェックをはずし、無効にします
(2) フリガナを付与したいセル範囲を選択します
(3) [Alt] + [F8] でマクロ画面を起動させ、FURIGANA を選択して実行します

これでご希望の動作の出来上がりです。
「Selection.SetPhonetic」とは読んだそのまま「選択範囲にフリガナ情報を付与する」という命令文です。
《選択範囲=フリガナ情報を付けたい部分》ですから、列でも行でも任意のセル範囲でもかまいません。
おっしゃるように、新しく入力した部分を選択して・・・という方法が実際の運用上では適していると思います。

IME辞書をVBAで操作することは出来ないとはいいませんが相当ややこしいことになってしまいます。
ウィザードを使うことと今回のマクロを使うことは辞書機能的に反対のことをしているため少々面倒かとは思いますが辞書設定は手動で行ってください。

開く時に<有効>にするか<無効>にするかですが、機能を使う時意外は<無効>にして全く問題はありません。
ただ、一度<無効>で開いて作業していたらマクロが使いたくなった、という時はいったん閉じて開きなおさなければいけませんね。

【追記】
最後に自宅PCで動作確認した所(前回は会社PC)、郵便番号辞書の有効/無効に関係なく住所→フリガナに変換されました。
直前に最新の郵便番号辞書をダウンロードしたので、その影響かもしれません。
辞書の設定がなければ楽になりますよね。試してみてください。(できなかったらゴメンナサイ)

参考URL:http://www.microsoft.com/downloads/details.aspx?FamilyId=45192822-FBA7-49E6-B220-09BB32250EB3&displaylang=ja

takiboです。はじめに、以後の説明を分かりやすくするためにもマクロのメッセージが出ない(マクロの無い)状態にしておきましょう。
マクロのメッセージが消えない件に関してはこちら読んでください(ここで書くと長くなるので横着します)
『マクロの削除について』 http://okwave.jp/kotaeru.php3?q=1557529

メッセージが出なくなったら本題へ戻ります。

まず、前回紹介した方法はごくごく簡単な、その時のみ作動するものです。
面倒でなければ前回の方法をその都度使ってもかまいませんが、繰り返し...続きを読む

Q【Excel2007】折れ線グラフの線幅をデフォルトで変更する方法??

【Excel2007】折れ線グラフの線幅をデフォルトで変更する方法??


 今日は、質問させていただきます。どうぞよろしくお願いいたします。
 Excel2007で折れ線グラフ(50本前後がまとまったもの)を作成いたしますと
線幅が太く(デフォルト)見づらいので、毎回2003と同じような最も細いもの
(1pix程度)に1本ずつ設定しなおしておりますが、手間がかかります。。orz
 今はVBAで行っておりますが、やはり毎回手間がかかっております^^;

 折れ線グラフ作成時に最初から、グラフ線幅を1番細いものに
設定できる方法ってあるのでございましょうか??
もしくはグラフ中の折れ線グラフすべての太さを同時に変えられるような
方法などございましたら、お教えいただきたくお願いいたします。

 もしお詳しい方がいらっしゃいましたら,どうぞよろしくお願いいたします。

Aベストアンサー

取り合えず簡単な表を作っておきます
例えばA列の【A2】セルから『A,B,C,D』などセル【A5】まで入力します
次にB列のセル【B1】に『あ』とか入力して【B2】から【B5】まで適当に数値を入力しておきます
・・・・・↑ここまではテンプレートとして作る仮の表です↑・・・・・

次に折線グラフを作り「系列」の線を選択→右クリックして「データ系列の書式設定」を選択→「線のスタイル」を選択→「幅」を「1Pt」に変更して「データ系列の書式設定」画面を閉じます

グラフエリアを選択されている状態で「デザイン」タブの左側2番目位に「テンプレートして保存」がありますのでそれをクリック→保存先フォルダ名が「Charts」になっている事を確認後、ファイル名に適当な名前を入力して保存します
・・・・・↑テンプレートとして保存された状態になります↑・・・・・

保存されたテンプレートは「挿入」タブの「グラフ」グループの右下にある小さい四角い所をクリックすると(ランチャーといいます)「グラフの挿入」画面が出てきますので一番上の「テンプレート」を選択すると先程保存されたグラフのテンプレートが格納されています

次に、実際の表で、まず折れ線グラフを作っておき、グラフエリアを選択している状態で作ったテンプレートをクリックしてあげると実際の表に反映されます

お試し下さい 彡O┓ペコリ

取り合えず簡単な表を作っておきます
例えばA列の【A2】セルから『A,B,C,D』などセル【A5】まで入力します
次にB列のセル【B1】に『あ』とか入力して【B2】から【B5】まで適当に数値を入力しておきます
・・・・・↑ここまではテンプレートとして作る仮の表です↑・・・・・

次に折線グラフを作り「系列」の線を選択→右クリックして「データ系列の書式設定」を選択→「線のスタイル」を選択→「幅」を「1Pt」に変更して「データ系列の書式設定」画面を閉じます

グラフエリアを選択されている状態で「デザイン」タブ...続きを読む

QWORD2002:テキスト・ボックス・フォーム・フィールドの幅を広くしたい

WORD2002でアンケート・フォームを作成しています。

テキスト・ボックス・フォーム・フィールドを挿入すると、2~3文字分の幅のフィールドが表示されます。このフィールドの幅を、それぞれ5文字分にしたり、20文字分にしたり、と幅を変えるにはどうすればいいのでしょうか?

どのフィールドも最長文字数は指定せず、好きなだけ書けるようにしていますが、「だいたいこれくらい書いてほしい」という目安のような感じにしたいのです。

フィールド内にスペースを入れるやり方ではうまくいきません。マイクロソフト配布のWebテンプレートで色んな幅のフィールドを見たことがありますので幅を変えること自体は可能だと思うのですが、やり方がわからなくて困っています。

ご存知のかた、ご回答をどうぞよろしくお願いします!

Aベストアンサー

#1,4です。
私が質問の意図を誤解してたかな?

Word のフォームにもチェックボックスはありますが・・・(文書をロックしないとテストできないけど)

HTMLとして保存してユーザーに記入してもらい、メール等で受け取りたいのでしょうか?
WordでHTMLの作成はした事がないけど・・・

オプションボタンを使用して「はい」「いいえ」の選択をしたいなら、

オプションボタン1とオプションボタン2を配置する。
オプションボタン1のプロパティで、
Captionを「はい」
GroupNameを適当なもの例えば「Q1」とタイプする。

オプションボタン2のプロパティで、
Captionを「いいえ」
GroupNameを適当なもの例えば「Q1」とタイプする。
「はい」と「いいえ」で一つの同じグループ名にします。

チェックボタンも同様にCaptionとGroupName指定すれば出来ると思います。

Q【EXCEL】グラフの値の幅が広すぎて見やすいグラフが作成出来ません

エクセル初心者なので、見やすいグラフの作成方法について、ご教授ください。

作成したいグラフは、月別の売り上げを顧客ごとに表すものですが、値の幅が広すぎて見やすいグラフを作成することが出来ません。

最大値が2万で最小値が、217と値に幅があります。
しかも、1000前後に値が集中しており、2万前後の値は1顧客だけです。

どうやったら見やすいグラフが作成出来ますでしょうか?

当方初心者なので、どのようなグラフの形式を用いて、設定を行なえば見やすいグラフが出来るか教えていただけると大変助かります。

よろしくお願い致します。

Aベストアンサー

>しかも、1000前後に値が集中しており、2万前後の値は1顧客だけです。
方法1.縦軸を対数にする
縦軸の書式設定で目盛りを対数にする

方法2.二つのグラフを重ねて表示にする
下のグラフは、目盛り間隔を500位で最大値を制限して作成
上のグラフは、目盛り間隔を3000位で最小値を制限して作成
この最大値と最小値を同じ値にして作成すればできます。

QExcelに出力するときにフィールドも出したい

VBのプログラムからExcelにデータを出力したいと思います。Recordsetから一行ずつデータを読み取ってExcelに書き込みしています。問題なくExcelに吐き出せるのですが、フィールド名を吐き出したいです。どのように吐き出しを行えばよいでしょうか?

Aベストアンサー

こちらが参考になるでしょう。
http://www.moug.net/tech/exvba/0150068.htm

Q折れ線グラフで横軸の1時間の幅を均等にしたい。

折れ線グラフで横軸の1時間の幅を均等にしたい。

Excel 2003で、1日24時間の気温の変化を横軸に時刻、縦軸に気温を取って折れ線グラフにしました。
気温測定時刻はほぼ1時間に1回なのですが、いつも00分とかいった固定された時刻ではなく、3:15分に測って、次は4:32分に測って、5時台は飛んで、次は6:03分に測って、...という風にまちまちです。

横軸は、横方向のグラフの幅の全体を24等分したものを1時間にしたい(つまり、1時間の幅をどの1時間も同じにしたい)のですが、

時刻  気温
3:15  36.1
4:32  35.9
6:03  34.2

のような表を作ってこれをグラフにすると、横軸に3:15、4:32、5:03が等間隔にプロットされてしまい、1時間の幅が同じになりません。

横軸の1時間の幅をどの1時間も同じにして、その目盛の上に上記のような測定値を正しくその時刻の位置に(つまり、例えば3:15の測定値は正しく3:15分の位置に)プロットするにはどうしたらいいのでしょうか。

Aベストアンサー

ご希望のグラフを作成するには以下のような設定をします。

まずグラフウィザードで折れ線グラフではなく散布図の折れ線を選択します。

作成されたグラフの横軸の部分を右クリックして「軸の書式設定」の目盛タブで最小値を「0」、最大値を「1」、目盛間隔を「0.04166666666」にして、表示形式タブで、ユーザー定義にして、たとえば「[h]」にして「OK」してください。

Qフィールドのデータによるレポート印刷

ACCESS2000でフォームにボタンを1コだけ配置して、そのボタンをクリックするとあるフィールドのデータがAの場合はレポートAのプレビューを表示し、フィールドのデータがBの場合は別の様式のレポートB、Cの場合はレポートC、Dの場合はレポートDのプレビューを表示するというようなことを行う事は可能でしょうか。

Aベストアンサー

vbaで次のようにできます。

select case me.テキストボックス名
case "A"
docmd.OpenReport "A_Report",acViewPreview
case "B"
docmd.OpenReport "B_Report",acViewPreview
case "C"
docmd.OpenReport "C_Report",acViewPreview
case "D"
docmd.OpenReport "D_Report",acViewPreview
case else
msgbox "レポートはありません。"
end select

Qエクセル セルの幅を変えてもグラフの幅は固定

セルの幅を変えてもその上に描かれたグラフの幅は固定しておきたいのですが、どうすれば良いですか?

Aベストアンサー

グラフを選んで書式設定を選択
プロパティタブの中から「セルにあわせて移動やサイズ変更をしない」をチェックでよろしいかと思います。

QExcel2003 列の幅の調整

お世話になります。

掲題の件で質問が御座います。

通常、列の幅をちょうど良い幅に合わせる時には
列番号というかアルファベット(なかには数字の方もいると思いますが)
の境界線(?)の部分をダブルクリックすると その左側は丁度良い幅に自動的に
調整されますが、この「境界線(?)でダブルクリック」の代わりになるような
キーボード操作は あるのでしょうか?
「何かしらのショートカットがあると良いなぁ」と思い質問致しました。

どなたか お分かりになるかた、宜しくお願い致します。

説明不足等 御座いましたら何なりとお申し付けください。

宜しくお願い致します。

Aベストアンサー

アクセスキーを使う方法です。
下記手順でキー操作してください。
≪列幅≫
Alt+O、C、A
≪行高≫
Alt+O、R、A

下記のような方法もあります。
ツールバーとメニューのユーザー設定
http://www.eurus.dti.ne.jp/~yoneyama/Excel/mous_jyo/jyo-5.html
ボタンのテキストを表示すれば
Alt+アルファベットキー、一発で起動することができるようになります。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング