step2の最近のブログ記事

土曜日を青く、日曜日を赤く

不満3「できたら土曜日は青、日曜日は赤で表示できたら良いのになぁ~」に挑戦です。

が、どうやったら自動的に文字の色が変わるのでしょうか???どこが土曜日、日曜日になるかなんて、カレンダーを表示させてみないとわからないことですからね。こんな時は、エクセルの「ちょこっとだけ」便利な条件付き書式を使うと便利なのです。

え?どうして「ちょこっとだけ」とカギ括弧でくくっているのかって?それはですねぇ、エクセル2003の場合、条件が「3つ」しかつけられないからなんです(涙)。ひとつの条件式に複数の条件を詰め込むこともできますが、

エクセル2003の場合、結果は最大で3種類!たったの3つしかないのです!!!

だから、「ちょこっとだけ」便利な機能なのです。ということで、3種類を言うことを頭に入れておいて作業していきましょう♪

本題に戻ります。

今回、土曜日と日曜日の色を変えたいので、幸いなことに書式の希望が3種以下なのでとても気楽に作業できます♪

まず、曜日の欄を1日から31日分まで(セルB5~セルB35)選択します。それから条件付き書式を開くのですが・・・。

条件付き書式は「書式」の中にあります(隠れていたら展開マークにマウスカーソルを持って行ってみてください♪)。

cal_081020_01.png

条件付き書式の画面が開いたら、「次の値~」のプルダウン(1)から「次の値に等しい」を選びます。

cal_081020_02.png

次に(2)に「7」を入力します。この「7」は WEEKDAY 関数で求められた値「7(土曜日)」を指します。日曜日が「1」、月曜日が「2」・・・となっているわけです。

次に「書式」ボタンをクリックして、セルの書式を決定します。セル全体を塗りつぶしても、文字の色だけかえても、それはあなたのお好みで。以下は土曜日なら文字の色を薄い青色にする設定です。

cal_081020_03.png

セルの書式画面のOKボタンをクリックし、条件付き書式画面のOKボタンもクリックしてみましょう。以下のように土曜日の「土」に変化が起きませんでしたか???

cal_081020_04.png

もし、なんの変化も現れていないようなら、「土」のセルを1つだけを選択して、もう一度やり直してみて下さい。もし、WEEKDAY 関数にオプションをつけたのなら、オプションに従って、1に対応する曜日が変わってきますので、それも合わせて確認して下さいね。

・・・では、日曜日もやってみましょう。条件付き書式の画面を開き、追加ボタンをクリックします。「条件2」が追加されますよ~。

cal_081020_05.png

「条件2」が追加されたことを確認したら、条件2欄の設定をします。条件1の土曜日同様、「次の値に等しい」を選びます。ただし、日曜日なので値は「1」となります。条件の設定が終わったら、また「書式」ボタンをクリックして書式を定義します。日曜日なので文字色を赤にしましょうか。

cal_081020_06.png

いかがなものでしょうか???えっ?日付の数字も色を変えた方がいいんじゃないかって?!う~ん、そうですね。確かに、その方がぱっと見でわかるカレンダーになりますよね。

確かに条件付き書式で設定可能なのですが、今回は「セルの値」ではなく「数式」を入れることにします。このように、条件付き書式では、他のセルの計算結果を基にセルの書式を変更することもできます。ただし、「書式」ボタンをクリックして出てきた書式以外は変えられませんけどね(苦笑)。

では早速作業してみましょう。

まず「1日」のセル(セルA5)を選択します。今回は日付のセルを全部まとめて設定できないので、セル1個だけ、まず作業しますね。

次におなじみになった「条件付き書式」画面を開きます。

cal_081020_07.png

条件1に土曜日の条件を入れていきます。まず、(1)「数式が」を選びます。(2)テキストボックスに

=B5=7

と、半角で入力します。B5はもちろんセルB5のことで、1日の曜日が表示されているセルのことです。このセルの値が「7(土曜日)」だったら・・・セルの書式を変更しなさい!と言うことになりますので、「書式」ボタンをクリックして、セルの書式を設定しましょう。

次に、「追加」ボタンをクリックして、条件2を表示させます。

条件2には日曜日の条件式を書いていきますので、土曜日(条件1)同様、「数式が」を選び、テキストボックスに、

=B5=1

として、「書式」ボタンをクリックしてセルの書式を設定します。

いったん、これで条件付き書式の設定を完了します。

1日(ついたち)のセルだけ変更しましたので、特別な変化はないですよね。1日が土曜日か日曜日なら変化があると思いますが・・・。

今さっき設定したのは「数式」でした。要するに、2日のセル(セルA6)に「セルB5(1日の曜日)」がなんなのかなんて設定しても意味がないのでやらなかったわけです。じゃぁ、これを1セルずつやっていくのか?いえいえ、書式ってコピーできるじゃないですか!!!

セルA5を選択してコピーします。セルA6からセル35までを選択して、「形式を選択して貼り付け」します。

cal_081020_08.png

形式を選択して貼り付けは「編集」の中にありますので、まずは画面を開きます。

cal_081020_09.png

画面が開いたら「貼り付け」カテゴリ内の「書式」ラジオボタンをオンにして、OKボタンをクリックします。

これで、土曜日と日曜日の日にちの色も変わったはずです。

次回では、祝日の設定を予定。

カレンダーの月末処理

あまり複雑なことはできませんが、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)に続きます。

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

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」と意味不明な表示になってしまいますから。ゼロ定義用の半角スペースですが、正・負ともに半角スペースが入っているので揃えただけです。右揃えだけど半角スペース分左に寄ります(何故そうなっているのかよくわかりませんが(笑))。

「変更しようとしているセルまたはグラフは保護されているため、読み取り専用となっています」

のようなエラーメッセージが出ませんか?もしそうなら「ツール」→「保護」で解決できます。でもパスワードがわからないと解除できないので、そのファイルを作成した人に確認してください。

なお、保護してあると言うことは変更して欲しくないからと予測することもできます。セルの値を変更することでとんでもない結果が出るかもしれません。悪しからずご了承くださいませ。

エクセルがインストールされたパソコンを購入した場合、VBAのヘルプはインストールされていないと思いますので、ご自身でインストールしてください。

派遣先でも時折悩むことがあります。自分自身が当たり前のように使っているコマンドが使えない時ですね。あ、そうか、アレは自分でインストールしてたんだ・・・と。すぐにインストール用CD-ROMを出してもらえればいいのですが、複数使っていてどれがどれだかわからなくなっていたりして、プロダクトキーが合わなくて拒否されたりね(苦笑)。

自分でインストールする時は要不要を見分けてインストールしてください♪

ズバリ、エクセル上でコピーしてきた表をワードに「貼り付け」すると、ワードの表形式に変換されます。これはこれで、ワードで作るより楽という意味で使えばいいのですが、エクセルの表そのものを貼り付けたい場合にどうするかですよね。

一般的には、「編集(E)」から「形式を選択して貼り付け(S)」を選び、「Microsoft Office Excell ワークシートオブジェクト」をクリックして選んでから「OK」ボタンをクリックします。こうしておけば、後から表部分をクリックして選択してからダブルクリックするとエクセルシート上で編集できます。

また、最新のエクセルデータを引用する必要がある場合は、上記の通り、「Microsoft Office Excell ワークシートオブジェクト」を選択し、形式を選択して貼り付け画面の左側にある「貼り付け」「リンク貼り付け」の内、「リンク貼り付け」のラジオボタンをクリックしてから「OK」ボタンをクリックします。表を選択し、ダブルクリックするとエクセルが開き、参照しているファイルを編集することが出来ます。

070404.gif

画像を貼り付けたエクセルシートを印刷してみたら画像だけが印刷されていなかった。

とりあえず、慌てずに印刷されなかった画像の上で右クリックをして「図の書式設定」を開いてみてください。「プロパティ」タブをクリックして、「□オブジェクトを印刷する(P)」の□(チェックボックス)にチェックが入っているか確認してください。

チェックが入っていなかった場合はそれが原因ですので、チェックを入れてからもう一度印刷してみてください。

問題はチェックが入っているのに印刷されなかった場合ですよね。他のMSソフト(ワードなど)でも画像が印刷されないのか、MS以外のソフトでも画像が印刷されないのか、細かく検証していく必要がありそうです。

2009.05.25 追記
チェックボックスやボタンが印刷されない場合も同じように確認して下さい。コントロールの書式設定を開きプロパティタブにある「□オブジェクトを印刷する」です。

2012.01.25 追記
2011年10月以降のエクセルアップデートを使うと、オブジェクト(グラフ、テキストボックス、クリップアートなど)が印刷されなくなることがあるそうです。解決方法については、マイクロソフトのサポートページを参照ください。
2011 年 10 月以降に公開された Excel 2007 の更新プログラムを適用すると表示通りに印刷できない

このアップデート以前から2007でオブジェクトが印刷できないという話を聞いています。今まで印刷できていたモノがある日突然できなくなったのなら、エクセル、MSオフィス、OS、プリンタドライバのアップデートが原因の可能性があります。2007をインストールして2003以前で作ったブックや2010で作られたブックのオブジェクトが印刷できない場合、バージョンの互換性に問題がある可能性があります。

MSにも問い合わせ窓口(この件は無料でサポートをうけられます)がありますので、原因の特定が難しく解決に至らない場合は、ネットで探し続けるよりも直接問い合わせた方が早いかと思います。
https://support.microsoft.com/oas/default.aspx?gprid=918&st=1&wfxredirect=1&sd=gn

このアーカイブについて

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

前のカテゴリはstep1です。

次のカテゴリはstep3です。

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

ウェブページ

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