• ベストアンサー

MS-Access Right関数について

質問させていただきます。 MS-Access2002で請求書を発行するシステムを作っております。 請求書は手書き用の伝票に印刷するのですが、金額欄が1マスずず区切られており、文字間が広くなっております。文字のポイントを大きくしたら縦がはみ出てしまいます。そこで、Right関数で、右から1文字ずつ取得するようにしたのですが、たとえば、10000円の場合6桁目以降がすべて”1”になってしまします。この6桁目以降がない場合、表示しないようにするにはどのようにすれば良いでしょうか?

  • aikun
  • お礼率77% (114/147)

質問者が選んだベストアンサー

  • ベストアンサー
  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.3

> >Space(10) & [kingaku] > これはテキストボックスのコントロールソースに書くのでしょうか? これをそのまま書くのではなく、文字列関数を使って、例えば次のように するということです。 質問の内容から、印刷する際に金額の各桁幅が合わないので、桁数分の テキストボックスを配置する と解釈されるのですが、それでいいのですね。 そうすると金額が[テキスト0]に表示されているとして 各桁のテキストボックスに対するコントロールソースは、円の単位から千万の 単位までは、それぞれ次の計算式になります。 =Right(Space(8) & [テキスト0],1) =Left(Right(Space(8) & [テキスト0],2),1) =Left(Right(Space(8) & [テキスト0],3),1) =Left(Right(Space(8) & [テキスト0],4),1) =Left(Right(Space(8) & [テキスト0],5),1) =Left(Right(Space(8) & [テキスト0],6),1) =Left(Right(Space(8) & [テキスト0],7),1) =Left(Right(Space(8) & [テキスト0],8),1)

aikun
質問者

お礼

回答ありがとうございます。 希望のものができました。早速、活用させていただきます。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

Right関数を使うので無く Sub test02() s = "100000" For i = Len(s) To 1 Step -1 MsgBox Mid(s, i, 1) Next i End Sub で、0,0,0,0,0,1が表示される、などが参考になりませんか。

aikun
質問者

お礼

回答ありがとうございます。 参考にさせていただきます。

  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.1

下のように、左側にスペースをいっぱい補ってから、文字列関数を使えば、 問題ないように思いますが、如何でしょうか。 Space(10) & [kingaku]

aikun
質問者

補足

早速の回答ありがとうございます。 ところで、 >Space(10) & [kingaku] これはテキストボックスのコントロールソースに書くのでしょうか?

関連するQ&A

  • エクセルのRIGHT関数教えてください!

    OL一年生です。上司に3回教わったのにいまだにわからないので 教えてください。 エクセルのシートのD列2行目から下に00111111からはじまる 8ケタのコードが2千個くらい縦に入力されていまして、これを 別のウィンドウのエクセルのD列に6桁になおして貼り付けたいのです。 今までやっていた方法は、8桁のD列を全て選択して、RIGHT関数を選択し、文字列に『D2』、文字数に『6』と入力し貼り付けようとしたのですが、セルD1に『RIGHTD2+6』と表示されてしまったりして、うまくいきません。 ご存知の方教えてください! よろしくお願いいたします。

  • LEFT,RIGHT,MIDなどの

    関数について教えてください。 例えば12345のような数値を別の5個のセルに一文字ずつ分けて表示する場合ですが、 123.45のように5桁あるときは問題ないのですが、 1234のように4桁になると、 12344のように、下2桁のMIDとRIGHTの関数でおかしくなってしまいます。 できれば4桁の場合、頭のセルは空白にしたいのですが、 わかる方がいましたら、ぜひ教えてください。 ちなみにエクセルの2010です。 下手な説明で申し訳ありませんが、よろしくお願いいたします。

  • Excel関数について

    おはようございます。初めて質問させていただきます。エクセルの関数で、ご質問があります。エクセル表のA行にはバラバラの数字が縦にずらっと並んでいます。その数字は、桁がばらばらで、10桁、100桁等色々な桁が入っています。 その全ての数字の一番左端の一文字だけを消したいのです。 例えば、112だったら12、21だったら1、1123だったら123という具合にしたいのです。 どのような関数を使用して、一度にそのような処理をすることができるかお教え願えませんでしょうか?

  • Excelの文字列操作について

    Right・Left・Mid関数は何桁目以降表示しなさい、とか何桁目以降何桁分を抽出しなさいという関数ですが、例えば、@AAAA@BBBBB@CC.***のような文字列があり、文字列の右側から何桁目に@が来るか知る関数はありますか?サンプルの文字列でいうと、***.CC@の順になりますので、7桁目と判るようにできますか?どなたかお知恵をお貸し下さい。よろしくお願い致します。

  • エクセルの関数について教えてください。

    エクセルにて、請求一覧表からデータを連係させて会社様式の請求書単票に印刷をしたいと考えています。 連係させるデータは宛名・金額・請求件名など簡素な内容なのですが、 請求書単票が会社の固定様式で、金額欄の一桁ずつ枠が設けられているため苦戦しています。 宛名、請求件名などは、VLOOKUP関数でなんとかできたのですが、金額の部分が先述しましたように、 金額欄が一桁ずつの枠に連係させる方法がよくわかりません。 VLOOKUP:指定した範囲の中から、検索条件に一致したデータを検索し、取り出す。 MID:指定した位置から指定した文字数分の文字列を抽出 IF:例1000円であった場合に、上位桁数をゼロではなく非表示にする。 これらを組み合わせればできるのではなかと思うのですが、うまくいきません。 どなたかお詳しい方がいらっしゃいましたら、ぜひご教授願います。

  • 末尾から指定した文字列を省く関数はありますか?

    末尾から指定した文字列を省く関数はありますか? 一つのセル内に 4/9(月) 4/10(火) と日付が並んでいる場合、括弧と曜日だけ省きたいのですが・・・ RIGHT関数だと曜日だけ抜き取ってしまいますし、LEFT関数だと日付が1二桁になったら変えないといけないしで困っています。

  • if関数とright関数を組み合わせて…

    初めて質問させていただきます。 if関数とright関数を組み合わせて、*だけを消して表示させる式を作成したいのですが… セルA1には、別シート(入力画面)のセルを参照する式が入っています。 入力文字末尾に『*』が付くと男性、付かないと女性を示します。 入力画面では『*』を意識しますが、表示画面には『*』を表示させたくありません。 そのため、参照しているセルに、『*』があった場合は、『*』を表示させないという式を作成したいのですが、どのように作成すれば良いでしょうか? よろしくお願い致します。

  • エクセル関数 LEFTの使い方

    使い方が良く分からないので教えてください エクセルで伝票作成を行う準備をしています 数字をLEFT変換させて使おうと思いますが 桁数の定まらない数字を正しく表示させるようにする方法を教えてください A1に 134 と打った場合 N1=LEFT(RIGHT(A1,1))=4                    LEFT(RIGHT(A1,2))=3                    LEFT(RIGHT(A1,3))=1 となりますが  4桁目が存在しない場合3桁目が表示されてしまいます                    LEFT(RIGHT(A1,4))=1 これを   非表示にさせる方法はありますでしょうか?

  • エクセルなんですが、定数の入力を省略できますか?

    1つのセルへ入力する数値が 月(2桁)と4桁の伝票の番号を合わせた6桁の伝票番号を設定します。 伝票の番号は変動するものですが頭の2桁の月は同じ数字ですよね。その場合4桁の伝票の番号の入力だけで月も表示される方法はあるんでしょうか? 例えば 4月に126番目に発行した伝票は 4月で04、126番は0126で 040126という伝票番号になります。 これを0126の入力だけで 040126 という数字は表示する方法はあるんでしょうか? 設定できる関数あれば教えて下さい。

  • Excel2003で乱数を作る関数

    Excel2003上で任意でパスワードを作りたいのですが、 できれば関数のみで作る方法をお教えください。 条件は以下です。 ・同じシート内にパスワードを作り積み上げていく。 ・左から6ケタ ・左から 任意の大文字アルファベット1つ 任意の小文字アルファベット1つ 0~9の任意の数字4ケタ ・毎日、10個程度のパスワードを発行したい ・できれば重複は避けたい などです。 数字4ケタのみなら簡単な関数で乱数のようなものを作れたのですが、アルファベットも絡むと難しくて… ご教授いただけると幸いです。

専門家に質問してみよう