【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?

マイタックラベルで患者への粉薬などの薬包紙へ用法を貼付したい。一枚の紙にはあらかじめ用意されているはげるマイタックラベル(例えば縦横 合わせて100片)があるとする。ラベル一枚に記載したいのは患者名と
用法(例:朝食後など)である。
例えば エクセル表でA列に下にそれぞれの患者名がずらっと並んでいるとする。その右側(B列、C列、D列・・・・)には各用法があるとする。患者によっては朝食後の人だけの人(B列:朝食後 表示)、患者によっては一日2回で朝食後(B列:朝食後 表示)、夕食後(C列:夕食後 表示)の人、患者によっては寝る前だけの人もあるが とにかく複数の飲み方のお薬があっても用法は左詰めになっているとする。このような場合 ラベル印字の無駄をなくすために前の患者の用法がこれ以上なかった場合次の患者に移って また患者名・用法を空白ラベルを作ることなく印字してゆきたいがどのようにすればいいのでしょうか。

A 回答 (7件)

No.4の回答者です。



私は、エクセルのシステム上では不可能だと思います。何の切れ目のないプリンター印字用のラベルで、カッターで切って使うのでしたら可能です。しかし、多くは、市販のラベルは数十片と別れたもので、ラベルの位置は、mm単位なのです。プリンタのヘッドに微妙なひずみがあっただけでも、下のほうのラベルの印字にはズレが生じてしまいます。

むろん、この点では、Wordのほうはラベル印字のサポートがあるので精度は高いはずです。
私の認識不足かもしれませんが、エクセルのバージョンが上がったことで、印字の精度が上がったのでしょうか。印刷のズレは、1mm 以内に収めないと無駄なラベルが出てしまいます。

印刷位置は、そのラベルの番号で決まります。

ラベル印字アプリは、エーワン、コクヨ、エイブリィマクセル などから、それぞれにアプリが出ています。それらは、エクセルで管理して、CSV出力で印字するような仕組みになっています。印字は、そのラベルの型番を選ぶと、そのとおりに当てはめてくれるという仕組みです。私の経験では、以前問い合わせしたら、ソフトウェアのサポートはきちんとしてくれました。アプリの優れている点は、名刺やカードの場合、裏表が一致させて作ることができます。ただし、ニチバン自体は、手書きラベル以外は、その種類が少ないようなので、アプリ自体もどの程度のものか分かりません。

現在のMicrosoft のサポートにはこのような注意が出ています。

Excel で印刷時のレイアウトが意図したとおりに印刷されない
https://support.microsoft.com/ja-jp/help/2997538
》同じ列幅を設定しているのに、ブックによって 1 ページに出力される列の数が異なる
選択するプリンターによって 1 ページに出力される列の数が異なる

》この現象は、対象ブックの標準スタイルに設定されているフォント (以下、標準フォント) とプリンターがサポートするフォントの組み合わせによって発生します。

理論値ではできるはずですが、私の古い記録のメモにも、こう書かれています。

 余白や文字幅は、ディスプレイやプリンタ、「標準」スタイルのフォントによって変化します。
 印刷でも列ごとに余白が追加されますが、画面のピクセル数と正確に比例するとは限りません。
    • good
    • 0

No3です。



>ここまで使用できるのはなかなか困難なものがあります
まぁ、それはそうなんですが、質問者様が利用なさっているシートの実際のサイズなどが不明なのと、なさりたいことを正しく解釈できているのかもわからないので、確認の意味もあって、目に見えるサンプルとして作成してみたものです。

反応がなんともなので、結果的にいずれも不明のまま(セル位置やサイズ、処理内容の妥当性)の上に、ご利用になるおつもりがあるのかどうかも怪しげな状態ではありますが・・・
やりかけたので、勝手に一般化してみました。
元の一覧表のサイズや作成するラベルの印刷列数などを自由に設定できるようにしておけば、一応は利用し易くなるのではないかと考えてのことです。


可変部分は以下のように「名前の定義」を利用して設定します。
1)元の表全体(項目名欄を含む)を「table」と名前付け(添付図の例ではA1:F10)
 (このA列に氏名があるものと仮定しています)
2)元の表の項目を除いた範囲を「data」と名前付け(添付図の例ではB2:F10)

3)印刷用ラベルのシートは元の表とは別のシートと仮定します
4)ラベルの列数をラベルのシートのE1セルに入力するものとし
  このE1セルを「列数」と名前付け(添付図ラベルシートのE1)
  (列数の値を変えれば、作成されるラベルの列数が変わります)
5)ラベル用シートのA2セルに、以下の式を入力し、Ctr+Sjift+Enterで確定
  (配列数式なので、必須です。 ↑ ↑ ↑)
6)A2の内容をラベルの対象となる範囲にフィルコピー
  (あらかじめセルの書式設定を、「折り返して表示」の設定にしておく)

A2セルに入力するのは以下の式です。
(やたら長いですが、上記の table、data、列数 の名前の定義がきちんとできていれば、式をコピペするだけで機能します。)
=IFERROR(if(COLUMN()>列数,"",INDEX(table,INT(SMALL(IF(data<>"",ROW(data)*1000+COLUMN(data)),ROW(A1)*列数+COLUMN(A1)-列数)/1000),1)&CHAR(10)&INDEX(table,INT(SMALL(IF(data<>"",ROW(data)*1000+COLUMN(data)),ROW(A1)*列数+COLUMN(A1)-列数)/1000),MOD(SMALL(IF(data<>"",ROW(data)*1000+COLUMN(data)),ROW(A1)*列数+COLUMN(A1)-列数),1000))),"")
「エクセルでマイタックラベルへの印刷」の回答画像6
    • good
    • 0

私がやるなら、A4丸々1枚単位で朝食後、昼食後、夕食後、就寝前と全部同じ文字の印刷を作って、


管理は、別紙で管理するかな。それが一番簡単。難しいこと考えなくていい。
ヒューマンミスをなくしたいのはわかるけど、そのための確認も大変なことになるし、
今後の引継ぎを考えると、誰でもできる方法が望ましいと思いますよ。
であれば、朝食後100片×2枚、昼食後100片×2枚、夕食後100片×2枚、朝食後100片×1枚って印刷して、
Excelで作った、患者のお薬リストで、チェックしたらいいと思います。
    • good
    • 0

昔の話で恐縮なのですが、VB6で印刷を試みると、1mm以内にその位置を収められることに気が付きました。


エクセルは、全体の長さ・幅からセルの数の分だけ割り振りしていくので、下に行くほど、右側にいくほど、位置がずれてしまいます。

マイタックラベルの発売元のアプリ(ラベルメイト)を使えば、市販のラベルにぴったり合うように印字できます。エクセルで作って、内容を確認し、その後CSVファイルで保存し、アプリで印字とラベル位置を確認すれば、ずれがなく印刷できます。

参考:
流し込みを使用した作成方法
ラベルメイトLight5 インデックスラベルの作り方
http://www.nichiban.co.jp/stationery/labelmate/i …
    • good
    • 0
この回答へのお礼

ためになりました。ぴったり合わせるのって難しいが いまはそんなアプリもあるんですね・・。

お礼日時:2019/03/10 07:03

こんにちは



>空白ラベルを作ることなく印字してゆきたいがどのようにすればいいのでしょうか。
元の表を参照して、別に、ラベルへの印刷形式の表を作成するのだと解釈しました。
その際に空白の欄は詰めて作成したいということでしょうか。

関数またはVBAで自動作成することが考えられると思います。
関数で一発で行うおうとするとかなり複雑なものになるので、質問者様がVBAを利用できるならそちらの方がわかりやすいかも知れません。

関数で行うにしても…
単純に一行(又は一列)の内容から週出して、一行(又は一列)に詰めて表示する例は検索するとたくさん見つかると思います。
ご質問は、元の表も2次元で、出力用の表も(質問文には100片としか書いてないけれど)想像するところ2次元になると思いますので、その変換の分を含めて式が複雑になります。

ごく簡単な縮小した例を添付図のように作成してみました。
(勝手な想像で作っているので違っている可能性がありますが)
氏名と用法は簡単な文字列(=記号)で代用させています。

上の表を元のデータと仮定して(用法は5個まで)、これを下のように詰めて表示できれば良いのかと。
(サンプルでは、出力の列数を5に固定で、下方にはいくらでも伸びるようにしています)
「空白を詰めて表示」するロジックなので、元データは必ずしも左詰めの必要はありません。
(DDDさんの、D555みたいに)

あくまでもサンプルですが、添付図では
 ・A1:F10の範囲をtableと名前付け
 ・B2:F10の範囲ををdataと名前付け
 ・B13セルに以下の式をを配列数式で入力し、フィルコピー
しています。

使用した式は以下。(配列数式です)
=IFERROR(INDEX(table,INT(SMALL(IF(data<>"",ROW(data)*1000+COLUMN(data)),ROW(A1)*5+COLUMN(A1)-5)/1000),1)&CHAR(10)&INDEX(table,INT(SMALL(IF(data<>"",ROW(data)*1000+COLUMN(data)),ROW(A1)*5+COLUMN(A1)-5)/1000),MOD(SMALL(IF(data<>"",ROW(data)*1000+COLUMN(data)),ROW(A1)*5+COLUMN(A1)-5),1000)),"")

実際のセルの位置や、表の大きさなどに合わせて調整が必要ですが、式を見ただけで嫌になっちゃいますね(笑)
関数で行うにしても、作業列を設けて「用法をいくつまで使っているか」の数を算出しておくなどすることで、式はかなり簡単にできるのではないかと思います。
同様のことはVBAでも可能で、そちらの方が、わかる方にとっては却ってわかりやすいものになるはずと思いますが、位置関係その他不明点が多いので省略します。
「エクセルでマイタックラベルへの印刷」の回答画像3
    • good
    • 0
この回答へのお礼

ここまで使用できるのはなかなか困難なものがあります、でも有難うございました。

お礼日時:2019/03/10 07:04

Excelだけで印刷するのは難しいのでは?



例えばWordへの差し込み印刷で名簿を指定してみてはいかが。
そうすれば、データのない部分が詰めた状態での差し込み印刷する
ことができます。
A列の差し込みフィールドから順番に段落ごとに配置します。
A
B
C
D

それぞれを配置したら。改行を一つ追加しておきます。
これを[個々のドキュメントの編集]で新規文書に差し込みします。
http://www.office-qa.com/Word/wd432.htm

データのない部分が詰まった状態で、段落ごとにズラッと差し込み
されたら、全選択をして[文字列を表にする]で列数を指定して変換
します。

この表を、Wordでラベルと同じレイアウトのものやExcelのラベル
などにテキストとして貼り付けすれば、空白のない列数指定された
ものとして利用できます。

上記手順以外だと、Excelだけでマクロ処理して新規シートなどに
データを流し込むぐらいしないと思います。
この場合のマクロについては回答しません。
    • good
    • 0
この回答へのお礼

有難うございました。参考になりました。

お礼日時:2019/03/10 07:04

どうしたいのか、手書きでいいので、最終的なタックラベルのレイアウトを描いて見せてください。

あと、名前いがいは、朝食後、昼食後、夕食後、就寝前の4表示のみですか?
あと、100片の型番と、全部一気に使い切るように印刷してたら、かなり待たせなきゃいけないと思うんだけど、それでいいの?薬の細かい飲み方まではいいのかな?
    • good
    • 0
この回答へのお礼

施設のこれから先のお薬なのでゆっくりでもいいんです、ありがとう!!

お礼日時:2019/03/10 07:05

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

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


おすすめ情報