エクセルの最近のブログ記事

放送大学で、ソフトウェアのしくみを順調に(汗)学習中です。

はてさて、第1回の授業を受講し、演習問題に取り組んだモノの、エクセル女子(笑)には意味不明な単語が続出。「符号あり正数」これは、「+」「-」の符号がつくと言うことで理解。DBで桁数(文字数)を設定する場合、10桁なら、符号で1桁使うので、実際には9桁しか入力できなくなる、そんな感じ。「2進数」これは、数字を0と1で表示するということで、時計の12進数や60進数が理解できていればOK。でも、0→1→10→11→100 と、即桁が上がる恐ろしい表現方法。なるほど。最後に「2の補数」。これ、わかりませんね(笑)。Facebookで説明を受けても、はぁ?という感じ(失笑)。エクセル女子の日常に全く存在しない文化です。

結論として、「2の補数」を理解することよりも、符号あり正数の負の数を、2進数化するときに、2の補数で表現できるようになればOKと理解。プログラムはなすべきコトができればそれで良いのです!(初心者の内は)!!

  1. 負数の絶対値を取る
  2. 2進数にする(3bit)
  3. bit反転する(0→1、1→0、なので、100→011)
  4. 001を足す

エクセル2010には2進数に変換する関数 DEC2BIN() がありますが、2進数化した数値を2進数として計算させることはできないようです。111+001なら1000が解ですが、エクセルは112とします。普通ですね(笑)。ということで、10進数で計算したモノを2進数化するのがよろしいようです。

個人的に困ったのは、不慣れすぎて、この計算過程が正しいかどうか確認する術が無かったこと。解が回答と同じでも大丈夫なのかと不安になりました。ということで、エクセルで、計算過程を表現してみようと思い至ったわけです。

また、演習問題2.2、2.3の表をエクセルで作成し、×がつく(フラグが立つ)場所に×を付けてみました。こんなことに4時間も消費したことは棚上げしておきます。きっと、このファイルを作った知識はPGする時に役立つと思うから。

作成したエクセルファイルはこちらにあります→ http://1drv.ms/1huBaTM

なお、bit反転するエクセル関数がなかったため、エクセルで数字を反転させるマクロ、関数はありますか? 例 11→00 00→11 を参考にしました。質問者と回答者に感謝感謝♪ また、不幸にも巻き込まれてしまったソフト屋の背の君様にも感謝感謝。「旧2種の勉強?」と言われてしまった(笑)。

では、エクセル女子、エンドユーザー女子の皆様、お互い、コツコツがんばりましょう!!

オススメサイト
Facebook 放送大学講義「ソフトウェアのしくみ」
Facebook 放送大学講義「コンピュータのしくみ」

 

ご無沙汰しております(苦笑)。

さて、今日はエクセルで行間設定をするのが面倒だなぁ~と思ったので、マクロでやってみることに。

1行目、3行目、5行目・・・奇数行の高さは16、2行目、4行目、6行目・・・偶数行は24。それを400行に渡って繰り返す場合です。

とりあえず、400行選択して奇数行の16にあわせておいて・・・。

VBAを開いて、

Sub gyo()
Dim i As Long

For i = 1 To 400
If i Mod 2 = 0 Then
Rows(i).RowHeight = 24
End If
Next

End Sub

これを実行すると、偶数行の高さを24にしてくれます。ただし、処理時間を少々頂くことがあります(苦笑)。

カレンダーの月末処理

あまり複雑なことはできませんが、2月や30日までの月は31日(29、30日)を表示しないくらいなら比較的簡単にできます。基本はカレンダーの定義をエクセルに反映させること。ただ、これだけです。やり方はいろいろあると思いますが、一例を紹介しますね♪

  • 1、3、5、7、8、10、12月は31日
  • 4、6、9、11月は30日
  • 年数が4の倍数の年をうるう年とする。ただし、100の倍数の年で400の倍数でない年は平年とする

この定義をまとめてみましょう。

  1. 1、3、5、7、8、10、12月は31日まである
  2. 2月以外は30日がある
  3. カレンダーはエクセルがシリアル値で管理しているので閏年の管理はいつ3月1日になるかで判定すればいい

考え方の一例なんですけど、いかがでしょう???もっといい定義があれば、もちろん、それにそって関数を組み立てて下さいね♪

さて、話は戻ります。

(1)の31日の件は、31日を表示するかどうかを判定するので「31日」に、(2)の件は30日を表示するかどうかを判定するので「30日」に、(3)は29日を表示するかどうかを判定するので「29日」に、関数を入れていきます。

では、具体的に。

とりあえず、31日のセルを選択します。先ほどコピーした関数はいったん忘れて、31日を表示するかしないかの関数に置き換えます。

31日まであるのは、1、3、5、7、8、10、12月なので、セルA2(月度設定セル)に、該当月が入力されているかどうかチェックします。チェックは IF 関数を使って判定します。「もし××ならば」の××部分に31日まである月を OR 関数を使って定義します。IF関数ですので、正しければ、セルA34(30日のセル)+1、正しくなければブランクとします。

=IF(OR(A2=1,A2=3,A2=5,A2=7,A2=8,A2=10,A2=12),A34+1,"")

これで、2、4、6、9、11月は31日がブランクになるはずです。

30日については2月以外は30日を表示すべきとわかっているので、IF 関数で、セルA2が2月ならブランク、そうでなければセルA33(29日)+1 とします。

=IF(A2=2,"",A33+1)

29日については、閏年の定義はさておき、エクセルがカレンダーを持っているのでなんの心配もいりません。セルA32(2月28日)に1を足して2月29日になれば29日を表示、セルA32に1を足して3月1日になればブランクとなります。29日があるのかないのかは、2月なのか3月なのかを調べればいいので、月度を取り出して比較します。セルA32(2月28日)+1 が A2(月度設定セル=2月)であるかどうかです。月度を取り出すには、MONTH関数を使います。(日付を取り出して29日かどうかを調べてもOKです♪)

=IF(MONTH(A32+1)=A2,A32+1,"")

これで、29~31日の設定ができました。2月などいろいろ変えて試してみて下さい。

最後に曜日の関数を変更します。これは単純に、日にちセルに日にちが表示されていれば曜日を表示、そうでなければブランク・・・と、IF 関数を使って設定します。29日の場合はセルB33に。

=IF(A33="","",WEEKDAY(A33))

このセルをコピーして30日と31日に貼り付ければおしまいです。

とりあえずこれで、西暦と月度を入力すると、曜日が自動変更され、月末の29~31日の処理も行えるようになりました。これだけでは物足りないとは思いますが、今日はこの辺で。

お疲れ様でした。

※もっと簡単に定義したい方へ
エクセルは万年カレンダーを持っています。1月31日に1を足せば必ず2月1日になります。閏年だろうと、間違えずに計算します。と言うことは、前日と当日の月を比べて違っていれば空欄にし、2月の場合、前日セルが空欄ならエラーになるので、その回避処理も追加しておけばOKです。月を取得するにはmonth関数、前日セルが空欄かどうかは、if関数で「=""」ならば、とするのが無難でしょう。

次回は、土曜日と日曜日の色替えです♪

曜日を調べる

エクセルで曜日を調べるには WEEKDAY 関数を利用します。

cal_081015_03.png

(1)fxボタンをクリック
(2)関数の分類で「日付/時刻」を選択
(3)リストから WEEKDAY 関数を選択

最後に、OKボタンをクリックすると WEEKDAY 関数の編集画面が開きます。

ところで、「シリアル値」ってなんのことでしょうか?!?!実は、Windows版エクセルでは1900年1月1日のシリアル値が「1」なんです。1900年1月2日が「2」・・・と言う具合に数字が日々大きくなっていきます。1900年から1000年以上経った今日のシリアル値を暗算で求めるなんて、それこそその分野の特殊な能力がないとできません。

というわけで、ちゃんと関数が準備されていますのでご安心を。二度手間で申し訳ないのですが、先ほどの WEEKDAY 関数の画面はいったんキャンセルいただき、以下の操作をお願いします。

(1)fxボタンをクリック
(2)関数の分類で「日付/時刻」を選択
(3)リストから DATE 関数を選択

OKボタンをクリックいただくと、DATE 関数の編集画面が開きます。ここに、今日の日付なり、1900年1月1日なりを入れてみて下さい。ちなみに2008年10月16日のシリアル値は「39737」だそうです(笑)。

ということで、DATE 関数を使って求めたシリアル値を、WEEKDAY 関数で使うわけですね。

では早速使ってみましょう。まず、西暦と月度を定義しましょう。とりあえず西暦がセルA1、月度がセルA2にしておきましょう。

cal_081015_04.png

続いて日付を DATE 関数を使って表示します。セルA5に

=DATE(A1,A2,1)

と入力してみて下さい。関数編集画面を開いてもかまいませんし、「=」から手入力してもOKです♪

えっ、5桁の数字が表れた?!?!

いえ、大丈夫です。それで正常です。安心して下さい。先ほど説明した「シリアル値」が表示されているだけなのです。え?それでもこれじゃぁカレンダーにならない?!あぁ、まぁそうですね。でも、そう言うときは、セルの書式設定というおまじないをすればいいのです。

シリアル値が表示されているセルを選択してから、キーボードの「Ctrl」を押しながら数字の「1(テンキーではなく「!(ぬ)のキーです」)」を押してみて下さい。「セルの書式設定」が開きましたよね?(エクセル2007ってどうなってるんだろう??)

cal_081015_05.png

セルの書式設定画面の「表示形式」タブを選び、分類の一覧から「ユーザー定義」を選び、種類の入力スペースにある「G/標準」を削除して、「d」を入力します。すると「種類」の上に表示されている「サンプル」が5桁の数字から「1」に変わるんです!!

この「d」は、Year,Month,Date のDateの「d」なんです。シリアル値から、y(年)、m(月)、d(日)が簡単に抜き出せるというわけです。ちなみに・・・「d」を「dd」とすると、「01」です。「10/1」ではなく「10/01」と表示したいときは、「mm/dd」とすればすっきりします♪

えっと、話がそれましたが、書式設定のおまじないで、無事、日にちが「1」になったかと思います。なんか面倒な気もしますが、WEEKDAY 関数で利用するため、2日以降も関数を設定します。でも、わざわざ、date 関数を使う必要はありません。シリアル値に1を足せば、必ず次の日になるんですから♪

と言うわけで、セルA6に、

=A5+1

と入力するだけでOK。シリアル値になってしまったら、セルの書式設定でおまじない。

「2」になったのを確認したら、このセルの右下の小さな四角(■)を掴んで31日のセルまでドラッグ!順々に「前のセル+1」がコピーされます。

日にち欄に「1」~「31」までの数字が入っていればとりあえず日付は完成です。

さて、ようやく曜日です。

セルB5に WEEKDAY 関数を入力します。

=WEEKDAY(A5)

あー、まただまされたー!とか思っていませんか?だって、数字が表示されているはずですから。でもこれで良いんです。

cal_081015_06.png

曜日のセルを選んで、セルの書式設定画面を開きます。先ほどは「日にち」のみを取り出しましたが、今度は日本語で曜日を表示するようにします。「aaa」で「月火水木金土日」、「aaaa」なら「月曜日火曜日水曜日・・・」となります。また英語の方がイイ場合は「ddd」や「dddd」でどうぞ♪

最後にセルA5を選択し、右下の小さな四角を掴んで31日までドラッグします。これで月末まで曜日が入力されたはずです。

では、西暦と月度を変更して、曜日が自動変更されるか見てみましょう♪

う・・・できない???うーん(困)。とりあえず、手順を確認してみて下さい(汗)。

(3)に続きます。

エクセルカレンダーを自作したい!

そう言ったご要望が多いので、とりあえず解説していきます。ただし、

cal_081015.gif

こう言うのは、いわゆる応用編なので、考え方など、順を追っていきますね。手っ取り早く作りたい方は、エクセルの雛形などをDLしてご利用下さい♪

何よりもできてもらわないと困るのは、エクセル上で文字の入力ができることと、罫線が引けること、そして、文字のサイズを変えたりフォントの種類を変更できることです。これらに関しては説明しませんので、お手持ちの参考書でご確認下さい。

まずは以下のようなシンプルなカレンダーを作ってみます。

cal_081015_02.gif

数字も曜日も手入力ですので、どなたでも作成できると思います。

でも、これでは不満なんですよね(苦笑)。

  1. 曜日を手帳やカレンダーで調べて入力するのが面倒
  2. 30日だったり31日だったり、28日だったり29日だったり、書いたり消したりも面倒
  3. できたら土曜日は青、日曜日は赤で表示できたら良いのになぁ~
  4. 贅沢を言って祝祭日振替え休日もわかるようにしたい!

私はこんな不満を感じますが、皆さんはどうでしょうか???

とりあえずですね、3と4は手数が多くちょっと面倒かも知れませんが、1と2は比較的わかりやすいのでやってみましょう!!!

では、次のページで早速♪

さて、表示画像の準備編で使用したクリップアートを再び使います♪ 準備編で作った画像を挿入してもOKです♪(この作業は画像の準備が適当だと痛いことになります)

で、最も大切なのは、画像をめいっぱい拡大しておくことです(笑)。いえ、ジョークじゃなくて本当に!

080911_tsubo-10.gif

画面一杯に開いてあるエクセルでこのくらい大きくしちゃってOKです。と言うのも、これからする作業は後で「縮小することに意味がある」からなのです。では、作業に入ります。

まず、「図形描画」のツールバーを出します。既に表示されていれば良いのですが、画面上に無い方は、表示>ツールバー>図形描画で表示させてください。なお、エクセル2007の場合は2003以前と全くやり方が違うので、ちょっとゴメンナサイさせてください(手元にありませんし)。

080911_tsubo-11.gif

この図形描画ツールバーにある、オートシェイプ>線>フリーフォームを選びます。

080911_tsubo-12.gif

ドロー系ソフトに慣れている方は曲線でもイイと思いますが、初めての方は「フリーフォーム」がオススメです。

このフリーフォームは多角形を簡単に書くことができます。クリックしたところが角になるので、曲線でも細かく角を作ることでまるで曲線のように表示することができるのです。では、早速やってみましょう。私は左回りが好きなので、壺の左肩あたりから下方向へ角を打っていくことにしました。

080911_tsubo-13.gif

上の画像はクリックした場所(角)を「頂点」として表示したモノです。こんな具合に、好きなだけ「頂点」を作ってなめらかな曲線に仕上げてみてください。

もし途中で少しずれてしまった場合も余り気にせず仕上げてみてください。頂点の編集でキレイに直せますから。

なお、この「フリフォーム」はクリックしていると頂点が角になりますが、ドラッグすると曲線になるので気をつけてください。

080911_tsubo-14.gif

これができあがった壺の枠線です。目立つようにラインを「白」くしていますが。

080911_tsubo-15.gif

もし、食い込み、はみ出し、気に入らない点がありましたら・・・

080911_tsubo-16.gif

画像の上で右クリックをして、「頂点の編集」を選択してください。

080911_tsubo-17.gif

「頂点」の上にマウスをのせると、マウスカーソルが変わります。四角「■」の4辺に各々三角「▲」がくっついているかと・・・。直したい「頂点」にマウスをのせ、左ボタンを押したまま、本来の位置へドラッグしてください。

080911_tsubo-18.gif

誌面の都合上、小さくなっていますが、お気になさらずに。

ええと、これで、壺の形ができました。ここから先、何しろっちゅうーねんですね。

080911_tsubo-19.gif

作成した図形の上で右クリックして、「オートシェイプの書式設定」を選んでください。

080911_tsubo-20.gif

「色と線」タブを選んで、塗りつぶし枠の「色」を「塗りつぶし効果」にします。

080911_tsubo-21.gif

「図」タブを選んで、「図の選択」ボタンをクリックします。

080911_tsubo-22.gif

以前作成して保存しておいた背景を切り取った画像を選択します。表示するモノによっては「図の縦横比を固定する」にチェックを入れた方が良いこともあります。後でチェックのオンオフが可能ですので、違いは試してみてください。

画像を選択したら「OK」ボタンをクリック、オートシェイプの書式設定画面も「OK」ボタンをクリックします。

080911_tsubo-23.gif

さて、どんな画像になりましたでしょうか?

ちなみに私の場合はわかりやすくするために白いフチ枠がありますので、取り除いてみましょう。後は本来の大きさに縮小してみてください。縦横比を維持したまま縮小するには、シフトキーを押しながらがいいかもしれません。

080911_tsubo-00.gif

手慣れないと簡単にいきませんし、複雑すぎる画像には向いていませんが、何かのお役に立てれば幸いです。

あ、黒いフチ周りを削除しないで読み込んでみると・・・こういうことになります。お気をつけ下さい。

080911_tsubo-24.gif

ちなみにこちらがその見本♪ → 080911_tsubo-mihon.xls

この画像のこの部分だけ貼り付けたいんだけど

ただ周囲を切り取りたいだけなら難しくないのですが、複雑な図形の背景を透過させたいと言われたらちょっと困りますよね。できればそれなりの画像加工ができるソフトを導入したいところですが、使いこなすまでが大変だったり、会社に寄ってはフリーソフトひとつ導入するにも稟議書から~(遠い目)だったりしますから、ある程度の縛りはあるけど、とりあえず使えそうな方法を書いてみます。

なおこれは、エクセル2003のお話です(2007でもできますが、アイコンの配置などが大幅に変更されてしまったので、フォローしきれません。ごめんなさい。)。古いエクセルではできないと思われますので、悪しからずご了承ください。

tsubo_org.PNG

これはクリップアートにあった壺の絵です。この背景を真っ白にしてみましょう。同じ画像で練習してみたい方は、このリンク上で右クリックして画像ファイルを保存してください♪

え?ペイントで白く塗りつぶせばいいって?あはは、そうですね。背景が単色の場合はそれでイイと思います。また、背景が白くなっていればいいのならペイントでチマチマ塗りつぶせばイイと思います。が、今回は後ろに文字や別の画像が見える透過画像を作ります。

080911_tsubo-00.gif

こんな感じになります。とにもかくにも画像が必要なのですが、エクセルに貼り付けたクリップアートでは都合が悪いので、これをコピーして画像加工ソフトにペーストします。

080911_tsubo-01.gif

クリップアートを使用する場合は、エクセルにクリップアート画像を挿入し、その後、画像の上で右クリックをし、コピーを選択してください。

ソフトはペイント系ならなんでもOKです。Windows なら、スタートボタンから、プログラム>アクセサリ>ペイントで起動する「ペイント」という簡易ソフトで問題ありません。このペイントにペースト(Ctrl+V)してください。

080911_tsubo-07.gif

次に表示させたい対象物だけにします。具体的には以下のような感じです。

080911_tsubo-02.gif

黒い背景をガッツリ削除しているのがわかりますでしょうか?

目の良い方、目の色解像度が非常に良い方はともかく、作業しにくいなと思ったら拡大表示をオススメします。表示>拡大>拡大するです。

080911_tsubo-03.gif

拡大して作りたい画像を見てみると・・・

080911_tsubo-04.gif

赤で囲った部分のように、黒いところをできるだけ多く切り捨てたいわけです。

キーボードの「Ctrl」キーを押しながら「A」キーを押してみてください。画像が点線で囲まれていませんか?画像全体を範囲選択しました。この点線で囲まれているときに、画像の上にマウスを持ってくると、マウスカーソルが矢印がついた十時になりますので、マウスの左ボタンを押したまま、左上に少しマウスを移動させてみてください(ドラッグ)。画像が動きませんでしたか?画像が動かなかったら、「Ctrl」+「A」からやり直してみてください。動いた方は、画像上部と左側の黒い部分をきれいさっぱり見えなくしてしまいましょう。

今度は右側と下部の黒い部分を・・・ってなんか白い部分が増殖している・・・大丈夫です。それも綺麗さっぱりなかったことにしますから!

080911_tsubo-05.gif

掲載の都合上原寸表示していますがお気になさらず・・・

赤丸で囲ったちっちゃい四角にマウスをのせると、マウスポインタが矢印になります。右側なら左右の矢印、下から上下、右下なら斜めの矢印です。矢印にマウスポインタが変わったらマウスの左ボタンを押しながらマウスを左側もしくは上側(または左上)に動かします。細い点線が現れていませんか?

080911_tsubo-06.gif

この細い線が仕上がり線になりますので、表示させたい部分ぎりぎりにあわせ、マウスの左ボタンから指をあげます。これを右側、下側、両方行って、不要な背景部分をそぎ落としてください。

できあがったら、お好きなフォルダに名前をつけて保存してください。ファイル>名前をつけて保存です。保存形式は、BMPあたりが無難です。ペイントのJPGは圧縮が高く、画像が汚くなることがあるので注意が必要です。

これで透過画像を作る準備ができました♪(続きは次回

エクセルで作った円グラフをもらったけどなんだか傾いているんだけど・・・また円グラフを故意に回転させたい。

graph02.gif←→graph01.gif

円グラフの上で右クリックをし、「データ系列の書式設定」を開き〔オプション〕タブをクリックしてください。「グラフ基線の位置」で設定できます。

エクセル2007を使うようになった方からのご質問です。以前は【ツール】→〔オプション〕で、エクセルの様々な設定ができたはずなのに2007にはそれに該当するコマンドが見あたらないとのこと。

マイクロソフトのサイトに情報がありましたのでお知らせします。

ボタン ←このボタンをクリックして「プログラム名のオプション」がかつてのオプションだそうです。MSのヘルプを参考にしてみてください♪

http://office.microsoft.com/ja-jp/help/HA101326981041.aspx

「+」が入力できない

| コメント(0) | トラックバック(0)

例えば・・・「=50+20」と入力したいのに「+」が入力できない・・・というお話の場合、キーボードが壊れているのでは?という話になるのですが、セルに「+70」と入力したのに「70」としか表示されないというお話の場合は、セルの設定になります。

セルの書式設定の「表示形式」タブを開いて設定します。とりあえず「数値」で一番近い設定を選んでください。桁区切りを使うとか、マイナスは赤くして「-」をつけるとか、必要に応じて。その後、「ユーザー定義」をクリックすると「数値」で選んだ書式が表示されていますので、そこにプラス記号を追加してください。

0_  ;[赤]-0 ;0    (全部半角で♪)

先頭にプラスマーク(半角)をつけて、後ろに「;0(半角スペース)」ですね。プラスマークはともかく、ゼロの定義をしておかないと「+0」と意味不明な表示になってしまいますから。ゼロ定義用の半角スペースですが、正・負ともに半角スペースが入っているので揃えただけです。右揃えだけど半角スペース分左に寄ります(何故そうなっているのかよくわかりませんが(笑))。

このアーカイブについて

このページには、過去に書かれたブログ記事のうちエクセルカテゴリに属しているものが含まれています。

前のカテゴリはstep5です。

次のカテゴリはワードです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

OpenID対応しています OpenIDについて
Powered by Movable Type 5.04