Office & VBA パーフェクトマスター RSSを登録する

国内最大のコミュニティサイト「モーグ」が配信するExcel、Access、Word、VBA等のテクニック集や連載コラム。

最新号をメルマガでお届けします    
登録 解除

規約に同意して

登録した方には、まぐまぐの公式メルマガ(無料)をお届けします。
2008/07/23

【オフパー】Vol.756 7月の書籍プレゼント 奮ってご応募ください!!

この記事を取り寄せる

◆━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◆
 あなたのスキルに+1 
    
          Office & VBA パーフェクトマスター
    
  >> http://www.moug.net/ 【オフパー】Vol.756 2008/07/23               
◆━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◆

【目次】

★モーグからのお知らせ
  7月の書籍プレゼント 奮ってご応募ください!!

★ Office 製品共通一般機能テクニック
   〜 上付き文字を簡単に入力する

★ 一問多答!!

★ モーグフリーソフト紹介

★ 田中亨の ExcelVBAテクニック
   〜 指定範囲外にセルを移動させない

★ 編集後記


****************************************************************************
 ★モーグからのお知らせ
****************************************************************************

★★━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
      7月の書籍プレゼント
    「できるポケット
      仕事に使えるAccessクエリの便利ワザがマスターできる本
                       Access2002/2003対応」
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━★★

 7月の書籍プレゼントは「できるポケット 仕事に使えるAccessクエリの便利ワザ
 がマスターできる本」です!
 
 Accessでのデータ管理、クエリを上手に使いこなすことができていますか?
 クエリでは「選択クエリ」しか使っていないという貴方!!
 
 アクションクエリ、SQLクエリ、関数を使った文字列や日付、数値の加工など、
 必要なデータを自在に取り出せる便利ワザが満載です。奮ってご応募ください!
      
 7月の書籍プレゼントのご応募はこちら >>
  http://www.moug.net/present/index.html


****************************************************************************
 ★Office 製品共通一般機能テクニック
****************************************************************************
<Contents>
上付き文字を簡単に入力する
(Word 2000/2002/2003/2007) 

●概要●
上付き文字を入力するとき、キーボードから手を離してマウスから設定するのは少々
めんどうですよね。
今回は、キー操作で簡単に上付き文字を入力する方法を紹介します。

●詳細●
(1) 入力する直前で[Ctrl]+[Shift]+[;れ]キーを押す

(2) カーソルが通常の文字の上側半分のサイズになる

(3) 文字を入力すると上付き文字になる

(4) 通常の入力に戻すには、再度[Ctrl]+[Shift]+[;れ]キーを押す

●補足●
同様に、下付き文字を簡単に入力するには、[Ctrl]+[Shift]+[-ほ]キーを
押します。

■Word一般機能の入力に関するテクニックはこちらから
⇒ http://www.moug.net/tech/woopr/0091.htm


****************************************************************************
 ★一問多答!!
****************************************************************************
勉強はなかなか一人では壁に当たって進まないもの。そんな悩みを解決するのが我等
がモーグ。同じ対象を見ても違う感想があるように、いろいろな角度で自分に合った
回答をモーグで見つけてください。
VBAエキスパートの例題を使って、モーグの利用法をご案内します。
----------------------------------------------------------------------------
例題)1行目に項目名が入力されているリストのデータ件数を調べたい。
   下記のプロシージャを実行し、メッセージボックスに件数を表示するために
   【A】に入る値として正しいものを1つ選びなさい。

 Sub record()
   Range("A1").CurrentRegion.Select
   MsgBox Selection.【 A 】
 End Sub

 1. Rows.Count

 2. Rows.Count - 1

 3. Columns.Count

 4. Columns.Count - 1


いかがですか?モーグのサイトで、検索・掲示板検索を利用してあなたなりの
正解を探してみましょう。

正解はモーグブログにて発表中です。ご確認ください!
http://www.moug.net/ads/ofp_vba.html


****************************************************************************
 ★モーグフリーソフト紹介
****************************************************************************
モーグのフリーソフトコーナーで公開しているソフトをご紹介します。

・VBA 見積書・請求書 H20 VER 2.11
 http://blog.moug.net/archives/51335722.html

・VBA 家賃収入計算書 H20 1.50
 http://blog.moug.net/archives/51381687.html
 
皆さんの気になるフリーソフトは見つかりましたか?
モーグのフリーソフトコーナーでは「財務・会計管理」「アドイン」
「ビジネス・業務用」「ユーティリティー」「家庭向け・アミューズメント」など
多種多様な、お役立ちフリーソフトが満載です!
いますぐ、モーグフリーソフトコーナーへアクセスを!

  モーグフリーソフトコーナーへ
   >> http://www.moug.net/freesoft/


****************************************************************************
 ★田中亨の ExcelVBAテクニック
****************************************************************************

『田中亨の ExcelVBAテクニック集』。数々のExcel著書で有名なMicrosoft MVP
保有者 田中亨さん がオフパー読者のために、より実践に即した、今すぐ使える
テクニックをご紹介!!
----------------------------------------------------------------------------
■指定範囲外にセルを移動させない(Excel 97/2000/2002/2003/2007)

ある指定したセル範囲の外にアクティブセルを移動させないようにするには、
ワークシートのイベントを利用します。ここでは、Sheet1内で「セル範囲A1:C10」
より外に移動させないようにしてみましょう。

(1)[Sheet1]のシート見出しを右クリックする
(2)[コードの表示]をクリックする。実行するとSheet1のモジュールが開く
(3)[オブジェクト]ボックスで「Worksheet」を選択する
(4)[プロシージャ]ボックスで「SelectionChange」を選択する

上記の操作を行うと

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub

という空のプロシージャが挿入されます。
Sheet1内でアクティブセルを移動すると、このプロシージャが実行されます。
移動先となる(新しい)アクティブセルは、引数Targetに格納されます。
アクティブセルを「セル範囲A1:C10」以外に移動させないためには、
引数Targetの行位置と列位置を判定する方法もありますが、ここではApplication
オブジェクトのIntersectメソッドを使いましょう。

Intersectメソッドは、

Application.Intersect(セル範囲1, セル範囲2)

と書くことで、複数セル範囲が共有するセルを返します。
もし共有するセルがない場合にはNothingを返します。
引数Target(アクティブセルの移動先)が「セル範囲A1:C10」外のとき

Application.Intersect(Target, Range("A1:C10"))

は共有するセルが存在しないのでNothingを返します。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Application.Intersect(Target, Range("A1:C10")) Is Nothing Then
        MsgBox "そのセルは選択できません"
    End If
End Sub

しかし、これではメッセージを表示するだけでアクティブセルは移動して
しまいます。
IntersectメソッドがNothingだったときは「直前のアクティブセル」に戻す
ような工夫が必要です。
SelectionChangeイベントはアクティブセルが移動した後で発生しますので
直前のアクティブセルを変数に格納しておくことにしましょう。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Static LastCell As Range
    If Application.Intersect(Target, Range("A1:C10")) Is Nothing Then
        MsgBox "そのセルは選択できません"
        LastCell.Activate
    Else
        Set LastCell = ActiveCell
    End If
End Sub

考え方に間違いはありませんが、上記のコードでは初回にエラーが発生します。
上記のコードが初めて実行されるとき、変数LastCellには何も入っていません
のでLastCell.Activateがエラーになるからです。
次のように、変数LastCellをチェックするようにしましょう。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Static LastCell As Range
    If Application.Intersect(Target, Range("A1:C10")) Is Nothing Then
        MsgBox "そのセルは選択できません"
        If Not LastCell Is Nothing Then LastCell.Activate
    Else
        Set LastCell = ActiveCell
    End If
End Sub


****************************************************************************
 ★編集後記
****************************************************************************
 先週末、全国的に梅雨明けし、いよいよ夏休みですね♪
 私は先週の3連休の最終日、バスツアーに参加してきました!
 『長瀞のライン下り&SLツアー』というツアーで、朝の6:40集合というハード
 スケジュールながらわくわくして出かけてきました!
 詳しくはスタッフブログでご紹介していきますが、なによりびっくりしたのは
 3連休の最終日だというのに、渋滞が全くなく、予定より1時間半も早く帰って
 来れてしまいました。ガソリン高騰はかなり深刻ですね。。。
               スタッフブログへGo!!⇒ http://blog.moug.net/
                     モーグ メールマガジン編集部(よ)

■登録解除
 メルマガ配信の登録解除を希望される方は、http://www.moug.net/よりログインし、
 会員情報変更よりメールマガジン配信を「希望しない」にご変更ください。

■広告募集について
 このメールマガジンに広告を出してみませんか?
 広告のお問い合わせは ad@odyssey-com.co.jp まで、お気軽にどうぞ。

◆━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◆
◎このメールマガジンは「まぐまぐ」、「melma!」で配送しております。
◎Office & VBA パーフェクトマスター(オフパー)の購読を中止なさる方は、
下記URLで手続きをお願いします。
 http://www.moug.net/melmaga/index.htm

◎掲載されている会社名・製品名は、各社の登録商標または商標です。
 Office & VBA パーフェクトマスター(オフパー)に掲載された記事及び
そのリンク先のコンテンツを許可なく転載することを禁じます。
 執筆・編集者および発行者は掲載された内容に起因するトラブルには
一切関与いたしませんので、あらかじめご了承ください。

     ‥‥……━━━━━━━━━━━━━━━━━━━……‥‥

執筆・編集 株式会社オデッセイ コミュニケーションズ
モーグメールマガジン編集部

                  問い合わせ先 moug@odyssey-com.co.jp
                     モーグ http://www.moug.net/
   株式会社オデッセイ コミュニケーションズ http://www.odyssey-com.co.jp
   
◆━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◆

この記事を取り寄せる
最新号をメルマガでお届け
登録 解除

規約に同意して

登録した方には、まぐまぐの公式メルマガ(無料)をお届けします。
上へ戻る