うっかりユーザのパソコン奮闘記

パソコンを使っていて感じたあんなこと、こんなこと、気ままに書いていきます。

宛名印刷:10

2011年12月16日 | 忘れかけていたこと

=INT(MOD(SIGN($C1)*$C1/10,10)) 
この数式に組み込まれている関数で、12月12日の記事でも触れた SIGN( ) の話がまだ残っていた。

SIGN は、サイン、プラス・マイナスをあらわす符号の英語のままなのでわかりやすい。
しかし、サインという発音が三角関数の正弦 sine と同じで、SIN( ) と混同しやすい。
思い出した、これはいつだったか、Kさんの話にもあった。
SIGN( ) のほうを、sign のラテン語形 signum (シグヌム)の英語読みで、シグナム関数と呼ぶこともあるという。

間違わないためには、素人くさくローマ字を棒読みにすればよいと思う。
エス・アイ・ジー・エヌ、エス・アイ・エヌ。
そのときは面倒でも、記憶には残りやすい。エス・オー・エヌ・ワイ・SONYとCMで歌われていたように。

プログラムの動作は、それを読んだり聞いたりすることとは無関係のようでも、教育や習得の過程には、人間の声が必ず介在する。
もう少し紛らわしくないような決め方が出来そうなものと思わないこともないが、プログラム言語は、いつ誰がどうやって決めたのかなど知ってみてどうなるものでもない。
黙って受け入れ、名前と書式と機能を間違わずに使うことのほうがだいじだから、これ以上の追究は無用ということにしておこう。


宛名印刷:9

2011年12月15日 | 忘れかけていたこと

=INT(MOD(SIGN($C1)*$C1/10,10))
という数式の中にある MOD( ) のことを探索してみる。

MOD は、モデュラス MODulus という説もあるが、これは怪説の気味がある。

書式は
 MOD(数値,除数)
機能は
 数値を除数で割ったときの余りを返す
とされている。

modulus は、係数あるいは率という言葉で、率が「割り算」とかかわりはあっても意味は直接つながらない。「余り」という意味はかけらもない。
ラテン語の modulo だという説もあるが、それが英語なら modulus らしいから同じこと。

やはり関数名はプログラム言語であって略号ではないとしておいたほうが、意味の違いが気にならなくてよさそうだ。

外国語系の用語は、どうしても意味を探りたくなって、熟語まで一つひとつの文字に分解して意味を尋ねたがる人をしばしば見かけるが、そういう人はものごとの理解にずいぶん手間がかかって、同じ話を何度も聞かなければならず大変だろうとお察しする。


宛名印刷:8

2011年12月14日 | 忘れかけていたこと

時間が経つと忘れてしまうから、Excel の印刷方法探訪で行き逢った関数のおさらいをして書きとめておく。

まず INT( ) というのがあった。
integer から名づけた関数、関数名はプログラム言語であって略号ではないこともあらためて認識。
これを略号だと思っていると、連想の絆に縛られて理解が遠のくこともある。
その実例に今度も出逢ったが、後の話にしよう。

integer インティジャーは、整数、1で割り切れる数、完全体のこと、intact インタクト、そっくりそのままという似た言葉もある。

=INT( ) の( )の中に数値を入れると、それにもっと近い値の小数部分がもぎ取られた数値が返ってくる。おっと、入れるという言葉もそうは言わないぞと言われそう。
返ってきたこの数値は、算術計算のように「答え」とは呼ばないのだそうである。
この数式で計算してくださいとお願いすると、はいこうなりましたと返ってくる値で、「返値」、「返却値」または「戻り値」という呼び方をするのだとHさんから教えていただいた。
数式を与えて結果を得るのは、質問を出して回答を受け取るのとは違って、答えが出るのではなく値が返るということらしい。

スーパーやコンビにのレジで耳にする「領収書のお返しです」を変な言い方だと思っていたが、あれは確かに答えではないから、動詞型で言葉を添えるにはああ言うしかないのかと考え直した。
「領収書をどうぞ」でもよさそうなものだが、「どうぞ」はいくらか押し付けがましい。いらないと言われたとき、なんにでもすぐにむかつくバイト生に配慮して、動詞型説明様式でマニュアルを作ったのかもしれない。

これを書きながら、キーで「かえりち」と打ち込んで変換したら「返り血」が返ってきた。
「返値」も「返り値」もまだ辞書には登録されてなかったので、入れておくことにした。


宛名印刷:7

2011年12月13日 | 忘れかけていたこと

Word の差込印刷の手順をHさんから教えていただいて、もう一度挑戦してみた。
ウイザードが現れて、案内にしたがって形は出来たが、肝心の差込み手続きがうまくいかない。

差込データのファイルを選定する窓に、フォルダーに確かに入れてある新しいファイルが現れず、前に入れてあったテスト用の二つのファイル名しか表示されない。
これは、ファイル形式が同じでなかったからと気づいたので、旧バージョンとの互換モードにそろえたら出てきた。

差込みがうまくいかなかったのは、よく考えてみたら、Excel で作った住所録の1行目に項目を入れずに、いきなり最初の人の氏名、郵便番号、住所を入れてあったのだ。
それを修正したらプレビュー画面に第1行の宛名がやっと現れた。

文字の配置が野暮いのでそれを修正。
氏名と敬称の間隔がやはりおかしいので、小さいサイズのスペースを「様」の字の上に押し込んで調整、4文字の名前はまあ何とか収まったが、3文字5文字はどうか、これはまだ試してない。

試し印刷をしてみたが、どこかおかしい。
差出人住所の番地は漢字で入っているのに、宛名は算用数字のままになっている。
Word の差込では全角数字を読み替えてくれないらしい。
住所録の宛名数字を半角に直したらOK。

これまで Excel でごちゃごちゃやっていたほうは、話が途中になってしまったが、あれはあれでまったく無駄ではなかったと思うことにする。
もう使うこともなかろうと忘れかけていた Excel の関数やマクロを、また少しずつ思い出し、ガーデニングシャベルで突っつくぐらいの浅い掘り下げにしても、ちょっとは考えてみようという気を起こさせてもらえたからである。

せっかくだから、ノートのつもりで、わかったことだけを明日から書きとめておくことにしよう。


宛名印刷:6

2011年12月12日 | 忘れかけていたこと

Excel の宛名印刷の話はしぶとく続く。
3桁の2番目の数字を取り出すのに、MOD 関数を使わなくても、掛け算、割り算、引き算を組み合わせるとできることを、12月10日のコメントでHさんから教えていただいた。

ふりかえってみると、疑問が残っている。
はじめに取り入れた2番目の数字を引き出すときの、
 =INT(MOD(SIGN($C1)*$C1/10,10))
にある (SIGN($C1)*$C1 という部分の解明がすんでなかった。

SIGN 関数は、数値の正負に対応する数値を返します、という難解文の説明がある。
「正負に対応する数値」と言われると難しく聞こえるが、
正の場合 SIGN(n) の返り値は 1 で、負の合 SIGN(-n) の返り値は -1、
それだけのことらしい。

紹介されている数式は、計算対象の数字がどんな場合にも通用しなければならない万能型になっているから、マイナスの値のない郵便番号にはこの部分はいらなかった。
SIGN 関数の部分をなくして、ためしに郵便番号をマイナスにしてみると、とんでもない結果が現れた。


宛名印刷:5

2011年12月11日 | 忘れかけていたこと

Excel の宛名印刷で、3桁と4桁の数字で記録されている郵便番号を1桁ずつに分解する数式の話は、まだ終わらない。

3桁の番号の頭から2番目をどう取り出すか。
100の位は100で割ればすぐ出たが、10の位はそうはいかない。

お借りした式の記述者は、割り算の余りからそれを取り出す関数を考えた。
 =INT(MOD(SIGN($C1)*$C1/10,10))ーーー$C1 はC列第1行にある数値
 
実験例の郵便番号の局番部分 974 で計算してみる。
974÷10=97・・・4ーーー数式の $C1/10 の部分
97÷10=9・・・7 ーーーー数式の MOD($C1/10,10) の部分
と2回割り算をして2回目の余りの数値7を取り出すと、これが2番目の数字ということになる。

これだけのことなら、
 =MOD($C1/10,10)
という式でよさそうなものだが、さて、これでは困ることが出てくるのだろうか。


宛名印刷:4

2011年12月10日 | 忘れかけていたこと

Excel の宛名印刷で、3桁と4桁の数字で記録されている郵便番号を1桁ずつに分解する数式を、Webの記事丸写しで作っては見たが、たかだか30文字ぐらいの簡単な数式でも、根底の意味を理解しようとすると、自前の閑枢脳ではなかなか滑らかにはいかない。

まず最初の頭の1桁は、
 =INT(MOD(SIGN($C1)*$C1/100,10))
という式で、答えは間違いなく返ってきた。

関数を使った場合、答えが出たと言わずに、「返った」という言い方がなじみにくいのだが、そう言い表すことに決めてあるらしいから、そうですかと受け入れるより仕方がない。
たとえば、教科書の説明には、SIGN関数は「数値の正負に対応する数値を返します」と書いてある。
Y印の知恵袋には、一言一字ずつこの意味は何ですか、語源は何ですか、文法的に正しいですかと、答えをもらったところで何の役にも立たないことをたねにして質問を出す人がたくさんいる。
こういう人には格好のねたになりそうな言葉である。

ここに使った式の大枠はINT関数で、( )の中の数値を、最も近い整数に切り捨てるというものである。
3桁の数値の頭の数字を取り出すには、100 で割って小数部分を切り捨てればよいのだから、INT関数のみでもよさそうである。

ためしにこの式を、セル C1 を 100 で割って整数にするだけに書き直してみる。
 =INT($C1/100)

頭の数字はこれでよいとしても、さて2番目数字はどうするか。


宛名印刷:3

2011年12月09日 | 忘れかけていたこと

Excel の宛名印刷で、3桁と4桁のセルにそれぞれ入っている郵便番号を、1桁ずつに分解していく方法を考えてみる。

1.住所録というブックに、Adrtable というシートを作っておく。名前は何でもよい。

2.郵便番号の3桁の数字をC列に、4桁の数字をD列に入れる。

3.同じシートの中に、分解した番号を入れておく7列、たとえばHIJKLMNを割り当てる。

4.郵便番号 974-8231 が、セル C1 と、セル D1 に入っているとする。

5.セルH1 に、セル C1 の3桁の左端の数字 9 を入れる数式を書き込む。
 =INT(MOD(SIGN($C1)*$C1/100,10))

6.セルI1 に、3桁の左端から2番めの数字 7 を入れる数式を書き込む。
 =INT(MOD(SIGN($C1)*$C1/10,10))

7.セルJ1 に、3桁の右端の数字 4 を入れる数式を書き込む。
 =INT(MOD(SIGN($C1)*$C1/1,10))

8.セルK1 に、セル D1 の4桁の左端の数字 8 を入れる数式を書き込む。
 =INT(MOD(SIGN($D1)*$D1/1000,100))

9.セルL1 に、4桁の左端から2番めの数字 2 を入れる数式を書き込む。
 =INT(MOD(SIGN($D1)*$D1/100,10))

10.セルM1 に、4桁の左端から3番めの数字 3 を入れる数式を書き込む。
 =INT(MOD(SIGN($D1)*$D1/10,10))

11.セルN1 に、4桁の右端の数字 1 を入れる数式を書き込む。
 =INT(MOD(SIGN($D1)*$D1/1,10))

これで結果はオーライなのだが、一度限りの操作と違い、繰り返し使うマクロでは、どこかで回りくどく余分なことをさせておくのは感心しない。
まだ追究の余地はありそうだ。


宛名印刷:2

2011年12月08日 | 忘れかけていたこと

Excel の宛名印刷で、最初の関門は郵便番号、3桁-4桁と意地悪く作った郵便番号の定形配置に、セルの中の数字位置を合わせるのは難しい。
1桁ずつなら割合簡単に大きさを決められるから7枡連続のセルを作った。
これに番号を1桁ごとに読み込ませればよい。

前の住所録ファイルの郵便番号は7桁の数字で入っていた。
まとめて Excel のセルに入れるのは無理なので、3桁と4桁に分けたセル入力を考え、7桁を3桁と4桁に分解しておいた。
この分解は、数式をあれこれ考えるよりも、それほど数の多くない住所録なら手作業のほうが早そうなので、まず下4桁を削り、次に上3桁を削って、順に片付けた。
これでよしと全体を見たら、おやおや0033が33になっている。頭にゼロのついた数字は、みな3桁か2桁の数字になってしまった。これはまずい。

数値では頭のゼロは消えてしまうので文字列にすればよいと、やってはみたがやはり頭にゼロがつかない。これはやはり書式を直さなければうまくいかない。

1.「セルの書式設定」⇒「表示形式」の [分類] を「ユーザー定義」にする。
2.[種類] を 「000#」に設定する。( #は1桁の数値 )

これで4桁の数値の頭のゼロが表示されるようになった。

次は読み込みのための分解作業だが、一度にやってはくたびれる、明日にしよう。


宛名印刷

2011年12月07日 | 忘れかけていたこと

Word の差込印刷は何度試みてもうまくいかない。
ヘルプを読みながらでも、Web の解説サイトを見ながらでも、実演を見た後でも、成功したことがない。
Office2007 からは、さもわかりやすそうなウイザードができたが、やはり途中で引っかかる。
ひっかかった理由がわかれば原因を取り除けばよいのだが、作った人と違う頭で見ているからわかるはずがないと思ったり、性に合わないと思い込んでいたりするせいもあるだろう。
面倒なことは時間をかければ解決するが、面倒なのではなく見当がつかないのだ。

やはり前から使っていたJ社のソフトに戻ろうかとも思うが、あれは宛名の姓名と敬称の字配りが悪く、すらっと等間隔にいかないところが玉に瑕。
かといって、住所録の名前欄の全行に「様」の字を書き込んでおいて、敬称なしで印刷というのも気が利かない。

それなら Excel で作ってやろうかと思い立ち、いま苦闘中、当分は退屈をしのげそうだ。


人名漢字

2011年12月06日 | 忘れかけていたこと

人名に使われている字は、キー入力の都合で別の字を使うわけに行かない。
MS-IMEで呼び出せる字はよいが、そこになければ外字エディタなどを使って作らなければならなかった。

情報処理推進機構(IPA)というところから、人名漢字等を中心に約6万文字の漢字を収録した文字フォント「IPAmj明朝フォント」が2011年10月26日に公開され、ダウンロードして使えるようになっている。

年賀状や名簿の整理などに困っていた方は利用されるとよいと思う。

(注)独立行政法人情報処理推進機構(IPA)
http://www.ipa.go.jp/about/press/20111026_2.html


設定不要

2011年12月05日 | 忘れかけていたこと

ものを買ってくる。箱から取り出す。すぐ使える。
それがいちばん優れた製品だと思う。

電気で動くものは、電源に接続したら自動でセットされ、調整不要。それが最優秀の器具だ。

いくら多種多様な機能を備えていても、設定にややこしい操作が必要なものは、まだ未完成なのだ。
Wifi なども、システムとしてはまだまだ完成していない。
次々に新しい方式をまさぐるよりも、完成した方式を目指した再開発を進めてほしいものだ。


匿名

2011年12月04日 | 忘れかけていたこと

Webへの投稿を、本名で堂々とする人と、ニックネームを使う人がいる。
まじめな話は本名、ちょっといい加減な話はニックネームと、使い分けもできる。
ニックネームのなかには、ただ文字を並べただけのような、自分でも覚えていないのではないかと思うようなのもある。まったく無名では投稿を受け付けてもらえないので、こういう命名というより記号づけをするのだろう。

パソコンが故障して乗り換えたとき、これまでニックネームでしていたMLへの送信が本名で行われていたのに、しばらく気づかずにいたことがあった。
メール文のなかのリンクが不調との知らせをもらったとき、本名で送信した分に異常があると書かれているのを見て、おやしまったと、そこで気づいた。

メールを受信したとき、送信者欄に表示される名前は、送信者が決めておいた名前になる。乗り換え後にニックネーム用のアカウントを設けるのを忘れていたのだった。
送信するとき、アカウントを複数持っていればどちらの名前で送るかを選択できるのだが、ひとつだけの場合には、下書きからの送信ウイザードには送信者の確認欄さえ現れない。
名前が一つならほかの人が送信するわけはないのだから当たり前なのだが。
要求された手続きは確かめながら進めても、選択を要求されなければスイスイと片付けてしまう。そして結果を確かめない。これがまずかった。

もうひとつのアカウントはプロバイダー側には設定されているから、メールソフトで増やせばよいだけのこと、早速前の状態に戻し、標題はニックネームで送信者は本名という、ちぐはぐなメールを出さなくてすむようになった。

ニックネームを名乗りながら、送信者名や書名欄に本名を書いておられるのメールをときどき見かけるが、あれあは何か意味があってのことなのだろうかと、不思議に思っている。


突っつき症

2011年12月03日 | 忘れかけていたこと

目に付いたボタンをすぐに押してみる人がいる。
むやみにつついても獲物は得られないのに、「見る前に突け」という習慣がついているようだ。
話をしているときはそうでもないのだが、パソコンに向かうと突っつき症が現れる。
車のハンドルを握ると人が変わるのに似ている。

一呼吸待つ、少しの忍耐で間に合うのだが。
胸部X線写真を撮るときのような深呼吸でなくてよいから、ゆっくり呼吸するとよいと思う。


バグ退治

2011年12月02日 | 忘れかけていたこと

予備のPCに入っていた Excel2007 を初めて起動してみる。
とたんにジャブをくらった。
「非表示モジュールにPCTKEvent内でコンパイルエラー発生」「デバッグするか」とのメッセージに「はい」と返事。
マクロのファイルが現れて、ここがだめと黄色い表示は出たが、それが何ものなのかわからない。
その項だけ無効にしてみたらとマークを入れようとしても入力を受け付けてくれない。

マイクロソフトのサポートに、Webサイトから問い合わせを出しておいたら電話をくれた。
C:\Program files\Microsoft Office2007\Ofice12\XLSTART にあるファイルをデスクトップに退避させ、 Excel2007 をあらためて起動。それでOK。

バグを抱えたファイルはこのアドインプログラムだった。小さなファイルなのでとりあえず場所と名前を覚えて保存。
追い出しただけでは退治にはならないが、いま使う当てがないから棚上げで我慢。
ひとの店で開店ののれんを出そうとすると店先でわいわい騒ぐ邪魔者を、交番に連れて行って預かってもらったような気分、せいせいした。