出産前後の痔にはご注意!

エクセルで氏名の一覧表と名札票を同時作成したいと思っています。

ポイントとしては、一覧表に氏名を載せ、それを名札票に自動的に転記させたいのです。

注意点としては、名札票には、氏名転記(フォント;36)して、その後すぐに『さま(フォント;16)』を自動的に差し込むという所です。

『さま』に関しては、同一セルに氏名フォントを-20して、挿入したいです。マクロの設定が必要になると思われますが、どうしてもうまくいきません。

どなたかご教授下さい。宜しくお願いします。

A 回答 (4件)

tankob3210さん、こんにちは。


私も全くの素人なので、たいしたアドバイスはできませんが、tankob3210さんのコードを見て気づいた事を少しだけ。

.Characters(Start:=Len(.Value) , Length:=1)
のところは下のようにすれば、"様"を"さま"にしても対応できますね。
.Characters(Start:=Len(.Value) - 1, Length:=2)
また、"さま"を加える前に、文字列の長さを変数(x)に保持しておけば、
.Characters(x + 1, .Value-x)とすることで、何文字でも対応できます。

.Font.Size =.Font.Size - 20

のところは、元のフォントサイズが16や20だった場合、
エラーになるので.Font.Size =16のようにした方が良いかと・・・。

シートのBeforeDoubleClickを使うなら、
Cancel=True
を入れるとセルが編集状態になりません。

>ダブルクリックしなくても、自動的に反映されるようにしたいです

との事ですが、マクロを作動させるためのきっかけは必要ですよね、イベントを使わないならコマンドボタンに登録する等になりますよね。Targetを使えるので、Wクリックはそれなりに良い方法だと思いますけどね。あとは右クリックを使うとか。

>管理上別シートに分けて使用したい

これについても、別シートの転記先を特定できれば、可能ですね。

長々と書き連ねましたが、これ以上はシートを拝見してみないと何とも言えませんが、tankob3210さんのやりたい事は、十分実現可能と思います。

頑張ってみて下さい。

この回答への補足

回答ありがとうございます。
やはりマクロの導入は素人には非常に難しいようです。
毎夜、頑張っておりますが、思ったようになりません。

補足日時:2005/08/16 00:45
    • good
    • 0

 質問ですが、名札票の方は「氏名」と「さま」を絶対に同一セルにしなければならない特別な理由があるのでしょうか。


 
 もし名札票を一人分ごとカットして名札として使われるだけなら、間に罫線を入れない限りセルを二つ使っても別に差し支えないと思いますが…………。

 私も過去同じような作業をしたことがありますが、マクロなど使わずに次の方法で簡単にやっておりました。
Sheet1のA1~AXに氏名一覧表があったとすると
Sheet2のA1に
=IF(Sheet1!A1="","",Sheet1!A1) …………Font36ポイント
Sheet2のB1に
=IF(A1="","","さま") ………………………Font16ポイント
 と入力しておいて、あとSheet2のA1、B1をプルダウンするだけでSheet1に入力された氏名と「さま」が表示されるので、Sheet2を板目紙にプリントし、あとカッティングして名札として使う。このような方法でやっておりました。
 
 蛇足ですが、入力範囲にはもちろん罫線は一切入れず、板目紙をカットするとき切り目が分かりやすいように、入力セル範囲の直近周囲の行列も印刷範囲に含め、(左右上下の)切り目部分にだけ罫線を入れてプリントし、あとカッターと定規を使ってとでカットしておりました。
 もしこのような方法で目的が達せられるとすれば、要点は関数やマクロなどの問題ではなくて、印刷範囲のレイアウト設定にあるような気がしますが……。(見当違いであればごめんなさい)。
 ご質問内容の「氏名票」の使途や作業方法が分からないので何とも言えませんが、どうしても氏名と「さま」を同一セルにしなければならない特別な理由がある場合は、表示形式の「@"さま"」ではFontポイント数を変えることは出来ないので、masa_019さんの回答のようにマクロを組むしかないでしょう。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

今回は、既存の作業を快適にすることを目的としているので、どうしても根本的な所を変更できません。
そのため、「氏名」と「さま」はなんとか同一セルで出来ないでしょうか?

お礼日時:2005/08/15 18:33

一覧表と名札票はそれぞれ別シートなのでしょうか。


詳細がわからないので、そういう前提で、
一覧表の氏名にさまを加えて名札票に転記、
フォントサイズを設定する部分だけですが、

With Sheets("名札票").Cells(1, 1)
.Value = Sheets("一覧").Cells(1, 1).Value & "さま"
.Font.Size = 36
.Characters(Len(.Value) - 1, 2).Font.Size = 16
End With

↑のような感じになると思います。
    • good
    • 0
この回答へのお礼

教えてもらうばかりで申し訳ないので、再度私の方で行いたいことを整理し、希望に近いマクロの例を検索してきました。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _
                    Cancel As Boolean)
'ダブルクリックで様をつける
With Target
   .Value = .Value & "様" '様をつけて
   .Characters(Start:=Len(.Value), Length:=1).Font.Size = _
   .Font.Size - 20 'セルのフォントサイズより20つ下のサイズ
End With
End Sub

以上のマクロで、かなりよい感じにはなるのですが、"様" を"さま"に置き換えるとうまくいきません。
また、ダブルクリックしなくても、自動的に反映されるようにしたいです。
最後に、同一シートで試みていましたが、管理上別シートに分けて使用したいので、 masa_019さまの回答して下さった設定を含めたいです。

このような統合されたマクロは作成可能でしょうか?
ご教授いただけないでしょうか?

お礼日時:2005/08/15 18:28

Wordのソフトが入っているなら、名札はWordの差込み印刷を利用された方がフォントやデザインでの自由度も高くなりますのでご検討されてはいかがでしょうか。


エクセルで作られた一覧表はそのまま使えると思います。
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。

今回に限っては、既存の名札票を利用しなければいけないので、Wordは使用不可なのです。

私もWordを試してみたいと思っているのですが・・・

お礼日時:2005/08/15 18:30

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

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

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

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

Qワード(エクセル)で名札を作成

ワード(又はエクセル)で名札等を作るとき、たとえば、2.5cm×5cmの紙片を作成するにはどうしたらいいでしょうか?

Aベストアンサー

WORDの場合
ツール⇒はがきと差込印刷⇒差込印刷ウィザード⇒ラベル⇒ラベルオプション⇒サイズの詳細⇒サイズ設定

私の場合、少数なら手書きで書いてしまいますが、大量ラベルの場合はエクセルで作ったリストを「ラベルの配置」より
挿入します。

QMS word or exel でネームプレートを作成

緊急事態なんです。明日の日曜日にパーティーがあるんですが、ネームプレートを作成しないといけないんです。
それで、昨晩3時までかかって、ワードの宛名書きのウィザードでやってたんですが、一度閉じると再編集できないのです。差し込みファイルとテンプレートの関係がよくわからないんです。
今晩徹夜は覚悟してますが、あせっています。
それで、エクセルかワードで
1.肩書きと名前を入力して
2.A4かA3に54×90のサイズに枠をつけて印字する。
3.カッターで切り取りフォルダーに挿入する。
と言うことができる、効率の良いやり方を教えてください。
どうかよろしくお願いします。

Aベストアンサー

WORDで差込を使わずに名札を作る方法を明記します。
この方法ですと、簡単に54×90mmの罫線枠を必要な数だけ作成できます。
(ただし、大変ですがデータだけは人数分入力してください)

また、WORD2000での確認になりますので、他のバージョンの場合
同じ方法でできるかわかりません(たぶん、できると思いますが)

1)[ツール]-[宛名ラベル作成]をクリック
2)[ラベル]タブを選択し、[オプション]ボタンをクリックします。
3)[ラベル製品名]の▼をクリックし、[その他]を選択
4)[製品番号]のリストから[Durable 1455-名札]を選択し
  [OK]ボタンをクリック
5)[新規文書]ボタンをクリック
     新しい画面が表示され、1ページ分だけ透明(グレー)の罫線枠が表示されます。
6)[罫線]-[選択]-[表]をクリックします。
7)[罫線]-[線種とページ罫線と網かけの設定]を選択します。
8)[罫線]タブを選択し、左端の[種類]は[すべて]、
  真ん中の罫線の[種類]、[色]、[線の太さ]は任意のものを選択します。
9)[OK]ボタンをクリックします。
     罫線に線がつきます。
10)1件ずつデータを入力します。
     1件のデータ入力がすむたびに、Tabで次の枠にカーソルをとばしてください。
     Tabで進むことにより、どんどん罫線枠を増やしながら入力していくことができます。

以上です。

なお、同じ役職名を何度も入力するのがじゃまくさいときは、コピーを利用してください。
また、作成直後の罫線には、入力した文字が上下の幅の中央に配置されるように
なっています。書式を変えたい場合は、上記の操作6で表全体を選択してから
[書式設定]ツールバーや[罫線]ツールバーを使って、書式や配置を整えてください。
表全体を選択してからすることにより、全セルの書式を一括して変更することができます。

では、大変でしょうががんばってくださいね。

WORDで差込を使わずに名札を作る方法を明記します。
この方法ですと、簡単に54×90mmの罫線枠を必要な数だけ作成できます。
(ただし、大変ですがデータだけは人数分入力してください)

また、WORD2000での確認になりますので、他のバージョンの場合
同じ方法でできるかわかりません(たぶん、できると思いますが)

1)[ツール]-[宛名ラベル作成]をクリック
2)[ラベル]タブを選択し、[オプション]ボタンをクリックします。
3)[ラベル製品名]の▼をクリックし、[その他]を選択
4)[...続きを読む

Qエクセルで打ち込んだ数字を自動で別シートに表示したい

エクセルでセルに打ち込んだ数字を自動で別シートに表示できる方法があれば、教えてください。

例えば、シート1のC1に5を打ち込んだら、シート2のD2にシート1で打ち込んだ5が自動で表示される。

また1列すべてを自動で表示させる場合、一つのセルの時と違いがありましたら教えてください。よろしくお願いします。

Aベストアンサー

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コピー&リンク貼り付けを使うと便利です。

例)例)シート1のC1~C5に何かを入力したら、
  シート2のD2~D7にシート1で打ち込んだものが自動で表示される

  シート1にあるコピー元のセルを範囲選択して、
  シート2のD2の上で「右クリック」⇒「形式を選択して貼り付け」
  をクリックします。

  そして出てきた小さな画面の左下にある「リンク貼り付け」という
  ボタンをクリックすると完成です。
  試してみてください。。

  念のためにリンク貼り付けを図解しているURLを載せておきます。
  参考にしてみてくださいね。。
  http://www.geocities.jp/office_inoue/excel/eq21.htm

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コ...続きを読む

Qexcelからexcelへの差し込み印刷

お世話になります。

excelでwordへの差し込み印刷をよく利用するのですが、
同様に、
excelのデータをexcelに流し込んで印刷する方法はありますでしょうか。

excelの名簿のデータを
excelの表のフォーマットに流し込んで
1人づつ印刷したいのですが。

お分かりの方いらっしゃいました教えてください。
どうぞ宜しくお願い致します。

Aベストアンサー

イメージはわかるが、エクセルに差込印刷の機能はありません。
ワードなどと違ってA.X氏1人分書類シート作成、B印刷、Aのシートををy氏分のデータでシート内容(セル)を置き換え、印刷、の繰り返しをします。
ーー
例データ Sheet1 A1;D3
連番氏名住所品物
1山田 三郎東京都江東区かばん
2植田 健横浜市港北区帽子
A列はこのたび連番を振りました。
Sheet2   に送り状の書式を体裁よく作ります。
H1セル(どこでも良いが、下記のVLOOKUPの式は変わる)

送り状

住所X
氏名Y

品物Z

上記の品をお送り申し上げます。
ご査収ください

以上
Xの場所のセルに =VLOOKUP($H$1,Sheet1!$A$1:$D$3,2,FALSE)
Yの場所のセルに =VLOOKUP($H$1,Sheet1!$A$1:$D$3,3,FALSE)
Zの場所のセルに =VLOOKUP($H$1,Sheet1!$A$1:$D$3,4,FALSE)

---
結果

送り状

住所山田 三郎
氏名東京都江東区

品物かばん

上記の品をお送り申し上げます。
ご査収ください

以上
ここで
VBE画面で標準モジュールに
Sub test01()
For i = 1 To 2 '人数分
Range("H1") = i
Range("A1:G20").PrintOut '印刷範囲は各人同じとする
Next i
End Sub
を張り付け、実行する。
山田、植田分の紙が2枚印刷されました。
これは質問者はVBAの経験も無いでしょうと、最低限にしてあります。
VBAを勉強してください。
別ブックにある名簿を対象などは複雑になるので避けています。

イメージはわかるが、エクセルに差込印刷の機能はありません。
ワードなどと違ってA.X氏1人分書類シート作成、B印刷、Aのシートををy氏分のデータでシート内容(セル)を置き換え、印刷、の繰り返しをします。
ーー
例データ Sheet1 A1;D3
連番氏名住所品物
1山田 三郎東京都江東区かばん
2植田 健横浜市港北区帽子
A列はこのたび連番を振りました。
Sheet2   に送り状の書式を体裁よく作ります。
H1セル(どこでも良いが、下記のVLOOKUPの式は変わる)

送り状

住所X
氏名Y

品物Z

...続きを読む

QWord差し込み印刷 ラベルの枠をつけたい

表記のとおりです。
ラベルの枠(線)が表示されません。
はさみで切りますので、枠の表示の仕方を教えてください。

Aベストアンサー

ラベルの枠線は罫線(表)と同じ意味になっています。

枠線を表示したい時には、ラベルのどこでもよいのでカーソルをおいて
「罫線」メニューの「線種とページ罫線と網掛けの設定」をクリックします。
ダイアログボックスが表示されるので、「罫線」タブをクリックして種類の所の「すべて」の上でクリックしてください。
それで、右下の「OK」ボタンをクリックすると罫線が表示されると思います。
印刷プレビューで確認してもらい、枠線が表示されていると思います。

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

Qエクセルの名簿一覧表からすでにエクセルで作られている一人づつのシートに差込印刷

エクセルでできている名簿リストから、すでにエクセルでできている個人別のシートに差込印刷したいのです。一人ずつセル参照で作ることはできるのですが、全部で300人分くらいあるのでワードの差込印刷のように一度にできる方法が知りたいのです。本日中にやらねばならないので手作業では、間に合いそうにありませんしVBAの勉強をしている余裕もありません。

Aベストアンサー

VBAでもない解答をします。ただファイル-印刷の操作を
300回すること。最終部のようにすれば、VBAで自動化も出来ます。
(1)Sheet2のA1:E3に住所録が
氏名郵便番号住所1住所2
山田 和郎111-1111東京都小平市新町2-1-2光マンション222
木之下 重雄222-2222東京都三鷹市本町4-3-2三国荘201
あるとします。本番ではA1:E300とかに住所録があります。
(2)Sheet1は印刷する画面シートです。
F1セルに2、
F2に="Sheet2!A"&F1
F3に="Sheet2!B"&F1
F4に="Sheet2!C"&F1
F5に="Sheet2!D"&F1
F6に="Sheet2!E"&F1
郵便番号を置くセルをB3として式=INDIRECT(F3)
府県市を入れるセルをB5として式=INDIRECT(F4)
町番地を入れるセルをB6として式=INDIRECT(F5)
気付を入れるセルをC6として式=INDIRECT(F6)
名前を入れるセルをB8として式=INDIRECT(F2)
C8に「様」を入れる。
(3)F1セルが2の時は
111-1111

東京都小平市
新町2-1-2光マンション222

山田 和郎様
となりますが、このA1:C8を印刷する。
(4)F1セルの値を3に変える(3を入力する)と
222-2222

東京都三鷹市
本町4-3-2三国荘201

木之下 重雄様
と瞬時に変るが、これを印刷する。
(5)F1を4、5、6、・・・と変えて印刷、変えて印刷すれば良い。
この(5)の部分だけをマクロの記録やVBAにすれば、
同じVBAでも既解答よりずっと易しいと思いますがいかがででしょうか。
Sub test01()
Worksheets("sheet1").Activate
For i = 2 To 3 '300
Cells(1, "F") = i
Range("a1:c8").PrintOut
Next i
End Sub
行高、セル幅、フォントサイズなどは手動で設定。
氏名、郵便番号、住所を置くセルは自由に出来ます。
上記でF1:F6も自由に別列に設定できます。

VBAでもない解答をします。ただファイル-印刷の操作を
300回すること。最終部のようにすれば、VBAで自動化も出来ます。
(1)Sheet2のA1:E3に住所録が
氏名郵便番号住所1住所2
山田 和郎111-1111東京都小平市新町2-1-2光マンション222
木之下 重雄222-2222東京都三鷹市本町4-3-2三国荘201
あるとします。本番ではA1:E300とかに住所録があります。
(2)Sheet1は印刷する画面シートです。
F1セルに2、
F2に="Sheet2!A"&F1
F3に="Sheet2!B"&F1
F4に="Sheet2!...続きを読む

Qパーセンテージの出し方

パーセンテージの出し方をおしえてください

Aベストアンサー

主人公÷母体×100

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

Qエクセルで重複しているデータの抽出のしかたを教えてください。

エクセルで重複しているデータを抽出したいのですが・・。なにぶん初心者なもので簡単な方法があればよいのですが・・。
A列に日付 B列に企業名このデータが300件ほどあります。

 Å列      B列
1月 1日    AAAA社
1月 4日   BBBB社
1月 8日   CCCC社
2月 1日   BBBB社
2月20日    DDDD社
3月 2日   AAAA社

と、あるとしてB列の企業名が重複しているものを抽出したいのですが・・・。この場合 AAAA社とBBBB社ですが。
これを簡単に抽出する方法はないでしょうか?
教えてください お願いいたします。

Aベストアンサー

企業名がセルB2からセルB300まで入力されていると仮定します。
セルC2に IF(COUNTIF($B$2:B2,B2)>1,"*","") を入力し、セルC300までコピーして下さい。すると重複したデータの二番目以降に "*" のマークが付きます。
(注) 数式を下のセルまでコピーするため、COUNTIF($B$2 は絶対参照にして下さい。


人気Q&Aランキング