2009年11月03日
【オフパー】Vol.819 マウスをドラッグして、シート間でセルを移動させる?!
- ◆━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◆
あなたのスキルに+1
Office & VBA パーフェクトマスター
>> http://www.moug.net/ 【オフパー】Vol.819 2009/10/28
◆━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◆
【目次】
★ モーグからのお知らせ
マウスをドラッグして、シート間でセルを移動させる?!
〆切間近!貴方もグーグル達人になれる書籍プレゼント
★ オデッセイコミュニケーションズからのお知らせ
新VBAエキスパート試験 合格者の声が続々寄せられています!
★ Office 製品共通一般機能テクニック
〜 セルの文字列を斜めに表示する
★ 一問多答!!
★ モーグフリーソフト紹介
★ 田中亨の Excel VBA テクニック
〜 ###表示かどうかを判定する
★ 編集後記
- ***************************************************************************
★モーグからのお知らせ
***************************************************************************
▼マウスをドラッグして、シート間でセルを移動させる?!
同じシート内であれば、ドラッグ操作でパッとセルの移動はできますが、
異なるシートへは、[切り取り]と[貼り付け]を利用していませんか?
実は、異なるシート間でのセル移動もドラッグ操作でできるんです!
╋…━…━…━…━…╋
♪方法はこちら♪ → http://www.moug.net/tech/exopr/0030019.htm
╋━…━…━…━…━╋
▼〆切間近!貴方もグーグル達人になれる書籍プレゼント
10月の書籍プレゼント 応募締め切りはいよいよ今週金曜日の18時まで!!
グーグルで、欲しい情報を確実にゲットできる検索ワザをマスターできる1冊!
まだ間に合います。この機会にぜひご応募ください♪
╋…━…━…━…━…╋
♪方法はこちら♪ → http://www.moug.net/present/index.html
╋━…━…━…━…━╋
◆お詫び◆
10月21日配信のオフパーにて、生年月日から年齢を計算する方法として
ExcelのDATEDIF関数をご紹介しましたが、引数を“MD”“YD”にした際に正しく
計算されない可能性があるようです。大変申し訳ありませんでした。
***************************************************************************
★オデッセイコミュニケーションズからのお知らせ
***************************************************************************
▼新VBAエキスパート試験 合格者が続々増えています!
2009年春にスタートしたVBAエキスパート新試験。おかげ様で多数の方に
受験していただいています!
業務効率の向上や再就職、職場復帰への自信につながったというご意見も!
╋…━…━…━…━…╋
♪詳細はこちら♪ → http://vbae.odyssey-com.co.jp/vbae/goukaku_index.html
╋━…━…━…━…━╋
***************************************************************************
★Office 製品共通一般機能テクニック
***************************************************************************
<Contents>
セルの文字列を斜めに表示する(Excel 2000/2002/2003/2007)
●概要●
表の項目名が長いと、すべての文字がセルの列幅の中に収まらず、途中で切れて
しまうことがあります。セル内で折り返すように書式を変更したり、文字サイズを
小さくしたり…と、何とかして文字が表示されるように調整してもよいのですが、
今回は項目名の表示を斜めの方向に変更することで、表の列幅を広げずに項目名を
表示する方法を紹介します。
●詳細●
<Excel 2003以前のバージョン>
1.表の項目を範囲選択
2.[書式]メニューの[セル]を選択
3.[セルの書式設定]ダイアログボックスの[配置]タブを選択
4.[方向]の度数を入力
5.[OK]ボタンをクリック
<Excel 2007>
1.表の項目を範囲選択
2.[ホーム]タブの[配置]グループにある[方向]を選択
3.[左回りに回転]または[右回りに回転]を選択
●補足●
Excel 2007でも、[セルの書式設定]ダイアログボックスの[配置]タブから文字列の
角度を細かく設定できます。
■Excel一般機能 セルとシートの操作関連のテクニックはこちらから
⇒ http://www.moug.net/tech/exopr/0031.htm
***************************************************************************
★一問多答!!
***************************************************************************
勉強したことをきちんと覚えているかを確認することは大切です。
一問多答では、ExcelやWordなどを日常使用されている方に知っておいてほしい機能
や多くの方が疑問に思われている題材をテーマに出題します!
今回は『Excelの検索関する関数』の問題です!
---------------------------------------------------------------------------
例題)A列に氏名、B列に20〜49歳までの年齢が入力されている表で、C列には
「=VLOOKUP(B2,$E$2:$F$4,2,TRUE)」の数式を使って年代を表示したい。
F2セルからF4セルに「20代」「30代」「40代」と入力されているとき、
E2セルからE4セルに入る数値として正しいものを1つ選びなさい。
1. E2セル:10、E3セル:20、E4セル:30
2. E2セル:20、E3セル:30、E4セル:40
3. E2セル:29、E3セル:39、E4セル:49
4. E2セル:30、E3セル:40、E4セル:50
正解はモーグブログにて発表中です。ご確認ください!
⇒ http://www.moug.net/ads/ofp_vba.html
モーグブログ内では、回答だけでなく簡単な解説をご紹介しています!
ぜひご覧くださいね。
***************************************************************************
★モーグフリーソフト紹介
***************************************************************************
モーグのフリーソフトコーナーで公開しているソフトをご紹介します。
・EXCEL-LENCE(エクセレンス) Ver.1.01
http://blog.moug.net/archives/51628794.html
・街の不動産屋さん ver.3.00
http://blog.moug.net/archives/51550423.html
皆さんの気になるフリーソフトは見つかりましたか?
モーグのフリーソフトコーナーでは「財務・会計管理」「アドイン」
「ビジネス・業務用」「ユーティリティー」「家庭向け・アミューズメント」など
多種多様な、お役立ちフリーソフトが満載です!
いますぐ、モーグフリーソフトコーナーへアクセスを!
モーグフリーソフトコーナーへ ⇒ http://www.moug.net/freesoft/
***************************************************************************
★田中亨の Excel VBA テクニック
***************************************************************************
『田中亨の Excel VBA テクニック集』。数々のExcel著書で有名なMicrosoft MVP
保有者 田中亨さん がオフパー読者のために、より実践に即した、今すぐ使える
テクニックをあなたに伝授! これは毎週目が離せない!!
---------------------------------------------------------------------------
■###表示かどうかを判定する(Excel 97/2000/2002/2003/2007)
セルの横幅に収まらない数値は「###」のように表示されます。
ちなみに、「#」は"シャープ記号"ではありません。
シャープは「♯」です。五線譜と見間違わないように横線が傾いています。
セルに表示されるのは「#」のように縦線が傾いている"ナンバー記号"です。
まぁ、そんなトリビアはともかく「###」表示には、多くのユーザーが
苦しめられた経験を持っているはずです。
ここはひとつ、「###」表示されているセルを見つけるマクロを作ってみましょう。
まず、アクティブセルに適当な数値を入力して、列幅を狭くします。
数値が表示しきれないほどの列幅になると、アクティブセルは「###」のように
表示されるはずです。
この状態で、アクティブセルのValueプロパティを調べてみましょう。
Sub Sample1()
MsgBox ActiveCell.Value
End Sub
RangeオブジェクトのValueプロパティは、セルに入力されている値を返します。
「###」は値ではなく、表示されているだけですから、Valueプロパティでは
判定できません。
もちろん、表示形式を表すNumberFormatプロパティや、数式を表すFormulaプロパティ
を使っても「###」かどうかを調べることはできません。
「###」と表示されるのは、セルに入力した数値の桁数が、セルの横幅よりも
小さいときですから、数値の桁数とフォントの幅から数値全体の横幅を計算して
さらに列の横幅と比較して小さかったら・・・などと難しく考える必要はありません。
Textプロパティを使えばいいんです。
Sub Sample2()
MsgBox ActiveCell.Text
End Sub
Textプロパティは、セルに表示されている文字列をそのまま返します。
たとえば、セルに「1234」と入力して「#,##0円」の表示形式を設定した場合
Valueプロパティは「1234」を返しますが、Textプロパティはセルに表示されている
「1,234円」を返します。なお、Textプロパティは読み取り専用です。
Textプロパティを使って、セルに表示されている文字列の左1文字が「#」かどうかを
判定すればいいのですが、「ちょっと待てよ、セルに"###"と入力されていたら
区別がつかないじゃないか」という疑問を持たれた方もいることでしょう。
安心してください。それも簡単に判別できます。
先に解説したとおり、列幅不足が原因の「###」は、実際にはセルに数値が
入力されています。ここでは、どんな数値かは問題ではありません。
実際には「###」というデータが入力されているのではないのですから、
ValueプロパティとTextプロパティが異なっているはずです。
Sub Sample3()
With ActiveCell
If .Value <> .Text Then
If Left(.Text, 1) = "#" Then
MsgBox "セルの横幅が足りません"
End If
End If
End With
End Sub
しかし、これで完璧ではありません。
「#NAME?」や「#DIV/0!」などの数式エラーも、セル内のデータと表示が異なり
かつ左1文字が"#"で始まっています。
こうした数式エラーの場合は、IsError関数がTrueを返しますので、
その判定も追加しましょう。
Sub Sample4()
With ActiveCell
If IsError(.Value) Then
MsgBox "数式エラーです"
Else
If .Value <> .Text And Left(.Text, 1) = "#" Then
MsgBox "セルの横幅が足りません"
End If
End If
End With
End Sub
数式エラーが発生しているセルのValueプロパティを「Value <> Text」のように
判定してはいけません。数式エラーセルのValueプロパティは、セル内のデータでは
なくエラー値を返します。エラー値は正常な数値や文字列ではありませんから、
Textプロパティと比較しようとすると、マクロが実行時エラーを起こします。
さて、Sample4の判定を利用して、列幅不足によって「###」のように表示されて
いるセルを探してみましょう。せっかくですから、見つかったら列幅の自動調整を
実行してセル内の数値がすべて表示されるようにしてみます。
任意のセル範囲を選択した状態で、下記のマクロを実行してください。
Sub Sample5()
Dim c As Range
If TypeName(Selection) <> "Range" Then
MsgBox "セル範囲を選択してから実行してください"
Exit Sub
End If
For Each c In Selection
If Not IsError(c.Value) Then
If c.Value <> c.Text And Left(c.Text, 1) = "#" Then
Debug.Print c.Address(False, False) & "の列幅を自動調整します"
c.Columns.AutoFit
End If
End If
Next c
End Sub
***************************************************************************
★編集後記
***************************************************************************
10月も今週で終わり、今年もあと2ヶ月です。やり残したことはありませんか?
毎年思うのですが、本当に1年があっという間になってきています。
今できることをすぐにやらないと駄目ですね!!
さて、同僚に「最近エクセルで困っていることない??」と聞いてみると、
「ない」というそっけない返事が…。そこでいろいろなネタを振ってみると、
「あ、前にどうやっても画面がスクロールできないことが…」と困ったこと発見!
でも、画面がスクロールできないってどういうこと?!
スタッフブログへGo!!⇒ http://www.moug.net/ads/ofp_staff.html
モーグ メールマガジン編集部(よ)
■登録解除
メルマガ配信の登録解除を希望される方は、http://www.moug.net/よりログイン
し、会員情報変更よりメールマガジン配信を「希望しない」にご変更ください。
■広告募集について
このメールマガジンに広告を出してみませんか?
広告のお問い合わせは ad@odyssey-com.co.jp まで、お気軽にどうぞ。
◆━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◆
◎このメールマガジンは自社配信システムで配送しております。
◎掲載されている会社名・製品名は、各社の登録商標または商標です。
Office & VBA パーフェクトマスター(オフパー)に掲載された記事及び
そのリンク先のコンテンツを許可なく転載することを禁じます。
執筆・編集者および発行者は掲載された内容に起因するトラブルには
一切関与いたしませんので、あらかじめご了承ください。
‥‥……━━━━━━━━━━━━━━━━━━━……‥‥
執筆・編集 株式会社オデッセイ コミュニケーションズ
モーグメールマガジン編集部
問い合わせ先 moug@odyssey-com.co.jp
モーグ http://www.moug.net/
株式会社オデッセイ コミュニケーションズ http://www.odyssey-com.co.jp
◆━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◆
-
Posted by mougle at 10:00
│Comments(0)



