パソコンカレッジ スタッフのひとりごと

パソコンスクールのスタッフが、
初心者から上級者まで役立つ情報をお伝えします。

累計を簡単に表示しましょう(Excel初心者)

2017-05-17 17:29:00 | エクセル
皆さんおはようございます。

さて↓このような表があったとしましょう。



いちばん右の列に累計を出したいと思います。

sum関数と絶対参照を使えば簡単に出来るんですよ。

絶対参照とは、数式で参照するセルの行列番号に"$"

を付け、セルを常に固定することを言います。

数式をコピーするときに使用します。

さて

セルD3を選択し、=sum($C$3:C3)と入力します。



そして、オートフィルを使ってセルD11まで数式をコピーしましょう。

コピーした数式を確認してみると・・・

セルD4=sum($C$3:C4)
セルD5=sum($C$3:C5)
セルD6=sum($C$3:C6)
セルD7=sum($C$3:C7)

このように、正しく合計を出す範囲が設定されていますね。

ただ、エラーチェッカーが表示されてしまいます。



これはExcelがご親切に「あなたが数式で参照した範囲の下にはまだ数値があるの

に、それを合計に含まなくていいんですか?」と心配してくれているんですね。

今回は心配ご無用(*^_^*)ですね。

エラーチェッカーがうっとおしかったら、

表示されている範囲を選択し、エラーのスマートタグをクリックして

「エラーを無視する」を選択しましょう。エラーチェッカーが消えます。



累計を楽ちんに計算できました。






エクエルって奥が深いですね。

奥が深いと言えば、エクセルって色々な機能があって、使い方によってはまるで手品(マジック)のようになるんですよね。

子どもの“プログラミング的思考"をグングン伸ばす本

この本、おすすめですよ(^^)

mihoりん
コメント (5)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Accessのデータをエクセルファイルに出力する(Access2000以降)

2017-05-17 17:26:43 | Access(アクセス)
今日も、アクセスを取り上げます。

任意のテーブルもしくはクエリーのデータをエクセルファイルに出力する方法をご紹介します。

その際、エクセルのファイル名だけではなく、シート名も指定してみます。

なお、シート名を指定しないと、テーブルもしくはクエリーの名前が
シート名となりますよ。

なお、Accessファイルは、デスクトップに保存してあるものとします。

エクセルファイルは、同じディレクトリ(今回は、デスクトップとなります)に
出力されるようにします。
従って、マイドキュメントにAccessファイルが保存してあれば、
エクセルファイルも自動的にマイドキュメントに出力されます。


Access2007でご説明しますが、2003やXPバージョンでも、問題なく動作します。



以下の画像は、今回エクスポートするテーブルのデータです。
T講座 という名前のテーブルです。






フォームをデザインビューで開いて、ボタンを配置します。
ボタンを選択して、プロパティをクリックします。
(F4キー、もしくは、Alt + Enter でもかまいません)

書式タブの標題に「エクスポート」と入力します。
これが、ボタンの表示される文字となります。






続いて、イベントタブのクリック時の右端の「・・・」をクリックします。






コードビルダを選択して、OKをクリックします。





Visual Basic Editorに切り替わりますので、
以下のように入力します。
画像を参考にしてください。


Private Sub コマンド0_Click()
    Dim FileName As String
    
    FileName = Left(CurrentDb.Name, InStrRev(CurrentDb.Name, "")) _
                    & "エクスポート講座.xls"
    DoCmd.TransferSpreadsheet acExport, _
            acSpreadsheetTypeExcel9, "T講座", _
            FileName, True, "講座情報"
    
End Sub







若干の説明をします。
FileName という変数を宣言して、そこにAccessファイルのパスとエクセルのファイル名を代入しています。

これで、Accessファイルがどこに保存してあろうと、同じフォルダにエクセルファイルが保存されるようになります。

エクセルのファイル名は、自由に変更してもかまいません。
今回は、エクスポート講座.xls としました。

次の1文がメイン処理です。

acSpreadsheetTypeExcel9 というのは、Excel2000ファイル形式を指しています。
これにしておくのが、一番安定しているようです。

保存先のファイル名は、先ほど仕込んだ FileName を使っています。

また、最後の 「講座情報 」は、シート名の指定です。
これを省略すると、テーブル名の「T講座」がシート名となります。


さて、それでは、Accessに切り替えて、フォームビューで表示してください。

「エクスポート」ボタンをクリックします。
画面に変化がありませんが、これで、エクセルファイルが出力されました。




もし、エラーが表示されたら、入力ミスの可能性がありますので、よく確認してみてください。


デスクトップ画面を見ると、エクセルファイルが作られていますね。





このファイルを開いてみましょう。
確かに、データが書き出されていますね。





シート名も確認してみましょう。
確かに、「講座情報」となっていますね。





なお、すでに同名のエクセルファイルが存在していても、エラーは出ません。
シートを上書きします。
シート名を変更してエクスポートすると、シートが増えていきますよ。




エクエルつながりで思い出しました。

エクセルって色々な機能があって、使い方によってはまるで手品(マジック)のようになるんですよね。

子どもの“プログラミング的思考"をグングン伸ばす本

この本、おすすめですよ(^^)

だい
コメント (8)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

IF関数であいまい検索しましょう(Excel)

2017-05-16 15:49:31 | エクセル
今日は生徒さんからの質問をとりあげたいと思います。

「IF関数の論理式に文字の検索、"~を含む"を指定したいのですが・・」

「ということはこんなイメージですかね。↓
商品コードに"PA"という文字を含むセルのお隣のセルに目印として"含む"と
表示させてみましょうか」



「はい、まさにそんなイメージです。やってみましょうよ」


まずは、IF関数の論理式にワイルドカードが使えるかですが・・実は使えません。

ワイルドカードとは文字のあいまい検索をするための"*"や"?"の記号です。

数式に「=IF(B4="*PA*","含む","")」のように入れると、"*"を文字として検索してしますのです。なので、
「セルB4の値が"*PA*"だったら」という論理式になってしまいます。

というわけで、論理式にCOUNTIF関数ををからませます。

COUNTIF関数は、指定した範囲に含まれるセルのうち、検索条件に一致するセルの個数を教えてくれる関数ですが、
この関数の検索条件にはワイルドカードが使えるのです。

では、C4のセルの数式に「=IF(COUNTIF(B4,"*PA*")>0,"含む","")」と入れてみます。



「ほら出来ました。(*^_^*)こんな感じでよいですかねぇ」

「なるほど!」



エクエルって奥が深いですね。

奥が深いと言えば、エクセルって色々な機能があって、使い方によってはまるで手品(マジック)のようになるんですよね。

子どもの“プログラミング的思考"をグングン伸ばす本

この本、おすすめですよ(^^)

mihoりん
コメント (6)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Wordでグリッド線を印刷したい

2017-05-15 17:01:00 | ワード
おはようございます。

今日も生徒さんからの質問をとりあげましょう。

「Wordで文章と一緒にグリッド線も印刷したいのですが・・」

この質問は生徒さんよくいただくのですが、実はWordのグリッド線は印刷できません。

なので、私たちが印刷するためのグリッド線を引いてあげないといけないんです。

まぁ面倒・・と思ってはいけませんよ(*^_^*)

図形の直線を使用し、ヘッダーの編集を行います。

簡単ですからがんばってやってみましょう。

まず図形の直線を引く際に参照するため、グリッド線を表示しておきましょう。



2002・2003は「表示」メニュー→グリッド線

次にヘッダーを表示させて、図形の直線を引きます。このとき線の色も指定する場合は

ここでやっておきましょうね。





2002・2003は「表示」メニュー→ヘッダー/フッター

1本引いたら、直線を選択した状態で、Ctrl+Dを押すとコピーができますから



繰り返し行って、直線を上手にグリッド線に合わせて配置します。

その後、ヘッダーの編集を閉じれば、印刷できるグリッド線の出来上がりです。



2002・2003はヘッダー/フッターのツールバー→閉じる


わざわざヘッダーに直線を描いたのには意味があります。本文の編集領域に直線を

引いてしまうと、文章入力時に誤って直線を移動させてしまったりと面倒なのです。

ヘッダー領域はページの上部と決まっていますが、本文の編集領域内にも設定は可能なのです。

これを活かしたというわけです。本文の編集には直線は影響しませんからね。

グリッド線を非表示にした状態↓



というわけで、実際にやってみて納得してくださいね(*^_^*)

おしまい♪

おまけ。

エクセルって色々な機能があって、使い方によってはまるで手品(マジック)のようになるんですよね。

子どもの“プログラミング的思考"をグングン伸ばす本

この本、おすすめですよ(^^)

mihoりん
コメント (8)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

入力確定前の文字が上にずれる!?(Word編)

2017-05-15 10:49:32 | ワード
ワードを使用していたら、不思議な現象に遭遇しました。

こんな感じです。



入力すると、文字が少し上にズレてしまうのです。



ただし、Enterキーを押して入力を確定すると、定位置に戻るのです。

確定するまでの辛抱なので、害はないのですが、どうしてこうなってしまったのか、その原因を知りたくなりました。


フォントダイアログボックスを表示してみました。



別段、変わったところは見つかりません。

次に、段落ダイアログボックスを表示してみました。



段落に関しても、別段、変わったところは見つかりません。


一体、原因は何なのでしょうか?

僕の入力が見事すぎて、日本語入力システムが舞い上がってしまったのでしょうか?

それならまあ、仕方がないかな、なんてmihoりんに自慢したら、彼女はこう言いました。

mihoりん「先生、上書きモードになってますよ。普通は、挿入モードですよね。」

僕「・・・そうだね。確かに。俺、上書きモードに変更した覚えがないんだけど・・・」




mihoりん「先生、むせっけな(※1)入力をするから、テンキーの近くのInsertキーを押してしまったんじゃないですか?」

僕「ええっ! まさか!」

mihoりん「まさか、じゃないですよ。もう、何が『俺の入力が見事すぎて』ですか・・・」

お恥ずかしい・・・ この現象は、上書きモードになっているからでした。。。

ちなみに、挿入モードへの変更方法は、キーボードのInsertキーを押すか、または、マウスで、画面下の「上書きモード」を
クリックしてください。


※1 むせっけとは、信州上田地方の方言。無理やり、乱暴、雑に、の意。



恥ずかしさついでに宣伝です。

エクセルって色々な機能があって、使い方によってはまるで手品(マジック)のようになるんですよね。

VBAをからめると、さらにドッキリ度がアップします。親子のやり取りを通じて、そんなエクセルの面白さが満載の本が、

子どもの“プログラミング的思考"をグングン伸ばす本

この本、おすすめですよ(^^)


だい
コメント (2)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

宛名を変えて自動的に連続印刷する方法(Excel2000以降)

2017-05-15 10:45:37 | ExcelVBA
今日は、先日いただきましたリクエストを取り上げます。

『昔仕事で、「申込書」「名簿」「許可書」に名簿の名前をいっぺんにうちこんで同時にプリントアウトする、
という高度なことを先輩がやってまして、(中略)あれはどういったプログラムだったのでしょう?』

多分こういう質問だろうと僕は解釈しました。
つまり、「別シートにある名簿から名前を取り込んで、その都度、印刷しては、次の名前を取り込む、
という繰り返しをプログラムで行う方法を教えてほしい」と。

解釈が違っていたら、また取り上げますので、ご連絡ください・・・


さて、以下のような発注書があるとします。







注目してほしいのは、A4(A列4行目)の数字です。この数字は、顧客Noなのです。
この数字に対応した顧客名がA6に読み込まれます。





実は、別シートに顧客名簿があるのです。ご覧いただきましょう。






さて、A6には、関数を設定してあります。
A4の値に対応した顧客名を名簿から参照する関数です。そうです、VLOOKUP関数ですね。






さて、さっそくコードを書いてみましょう。


ALT + F11 で、VisualBasicEditorを起動します。

「挿入」→「標準モジュール」をクリックします。

そこに、次のようにコードを記述してください。


Sub 連続印刷()
    Dim i As Integer
    Dim LastRow As Integer
    
    Worksheets("発注書").Select
    
    With Worksheets("名簿")
        LastRow = .Range("A65536").End(xlUp).Row
        For i = 2 To LastRow
            Range("A4").Value = .Range("A" & i).Value
            ActiveSheet.PrintPreview
        Next
    End With
End Sub



一応、画像も掲載しておきます。





名簿の顧客が増えても全員印刷できるように、名簿の最終行は、プログラムで判断しています。
また、この段階では、実際に印刷するわけではなく、確認のために印刷プレビューするコードになっていますので、
ご了承ください。


それでは、実行してみましょう。

Excelに切り替えて、Excel2003までは、「ツール」→「マクロ」→「マクロ」とクリックします。
Excel2007は、Altキーを押しながらF8キーを押してください。
実行ボタンをクリックします。






プレビュー画面が表示されますね。
この画面を閉じると、即座に次の顧客名でプレビューされます。
うまくいってますね。






実際に連続印刷する場合は、
ActiveSheet.PrintPreview
を、以下のように変更します。
ActiveSheet.PrintOut

ただし、顧客の人数が多い場合には、若干注意が必要です。
というのも、プリンタによっては、対応できずにエラーになることがあるからです。

この場合、対応するコードを追加したほうが安全です。
このコードについては、改めてご紹介しますね。



VBAって奥が深いですね。

奥が深いと言えば、エクセルって色々な機能があって、使い方によってはまるで手品(マジック)のようになるんですよね。

VBAをからめると、さらにドッキリ度がアップします。親子のやり取りを通じて、そんなエクセルの面白さが満載の本が、

子どもの“プログラミング的思考"をグングン伸ばす本

この本、おすすめですよ(^^)


だい
コメント (8)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

複数のコントロールのイベントを一つのプロシージャにまとめる(ExcelVBA)

2017-05-15 10:41:11 | ExcelVBA
今回は、VBAを取り上げます。

現在、生徒のU君は、VBAを勉強しています。基礎的なスキルを身につけたので、実践編へと進んでいます。
今取り組んでいる課題は、「VBAで電卓を作る」です。

みなさんも、一緒に考えてみませんか?



エクセルを起動して、ALTキー + F11キー を押します。
Visual Basic Editorが起動したら、「挿入」→「ユーザーフォーム」とクリックします。

画面に、フォームが表示されたら、以下の様にコントロールを配置します。


上部に、テキストボックス、
その下に、計20個のコマンドボタンを整然と配置します。
なお、フォーム名は、「frmCalc」としました。




このとき、注意してほしいことがあります。
数字の表示されているコマンドボタンの名前についてです。
今後の作業のために、ボタンの名前は、「任意の名前」+表示される数字 としてください。

例えば、
0と表示されたボタンは、「btn0」、
1と表示されたボタンは、「btn1」、
2と表示されたボタンは、「btn2」、
3と表示されたボタンは、「btn3」・・・という感じです。
数字の前の部分は、お好きな文字列で構いません。

今回は、b0, b1, b2, b3・・・と名前を付けてみました。

なお、数字以外のボタンは、分かりやすい名前なら何でもいいです。



さて、今日は、まず、手始めに、数字のボタンをクリックすると、
上部のテキストボックス窓に、数字を表示するところまで頑張りましょう。


普通に考えると、0~9までの数字のボタンのクリック時イベントに
コードを書くようになります。

下のような感じですね。






上の図のようなプロシージャが、9つ必要になりますね。

でも、よく見ると、各プロシージャのコードは、=の右辺が異なるだけです。

そうです。どれもみな、処理の内容は同じなのです。ただ、表示する数字だけが異なるのです。

それならば、この10個のプロシージャの処理内容を一つにまとめてしまい、
10個のどのボタンからも、この一つにまとめられたプロシージャを呼び出せば、全体がシンプルになります。

実は、そんな事が出来るのです。

Visual Basic 6 までは、この機能を「コントロール配列」と呼んでいました。

書き方は全く異なりますが、Visual Basic .NET 以降ももちろん同様の処理ができます。

ExcelVBAは、バージョン的には、VB6.x ですから、コントロール配列が使えればいいのですが、
残念ながら、この機能は搭載されていません。
従って、別の方法で実現します。その方法とは、「クラスモジュールを活用する」です。


それでは、クラスモジュールを追加しましょう。
「挿入」→「クラスモジュール」とクリックします。
(クラス名は、初期設定のClass1 のままでいきます。)

以下のようにコードを記述します。


'イベントを持つコマンドボタン型の変数を宣言
Private WithEvents Btn As MSForms.CommandButton
'ボタンの数字を格納する変数を宣言
Private Index As Integer

Public Sub NewClass(ByVal c As MSForms.CommandButton, _
ByVal i As Integer)
  'いわゆるコンストラクタ処理

  '引数のコマンドボタンを変数に格納
  Set Btn = c
  'コマンドボタンの数字を変数に格納
  Index = i
End Sub

Private Sub Btn_Click()
  'frmCalcフォームのTextBox1に、
  '変数Indexの中身を表示する

  frmCalc.TextBox1.Text = Index
End Sub


一応、画像も載せておきます。





クラスというのは、いわゆるオブジェクトの原型で、このクラスからインスタンスを生成して使用します。
(VB.NET以降は、オブジェクト指向言語になっていますので、クラスの使い方がとても重要です)

VB6でも、一応クラスは用意されているんですね。

このクラスは、コマンドボタンのイベントプロシージャを持っています。
クリック時に、フォームのテキストボックスに数字を表示する機能を持っています。

あとは、このクラスを10個の数字のコマンドボタンにひもづけてあげればいいのです。

そのためのコードを、ユーザーフォームに記述します。

以下のように記述してください。

Option Explicit

Private NumBtn(0 To 9) As New Class1


Private Sub UserForm_Initialize()
  'インスタンスの生成

  Dim i As Integer
  For i = 0 To 9
    NumBtn(i).NewClass Controls("b" & i), i
  Next

End Sub

一応、画像も載せておきます。




モジュールレベルの変数NumBtnを宣言します。型は、Class1 となっております。
このClass1は、先程つくったクラスのことですよ。
でも、よく見ると、As のあと、Class1 の前に Newというキーワードがあります。
これが重要です。このNew を付けることによって、クラスは実体をもつようになります。(インスタンスと言います)

なお、NumBtn(0 To 9) の、かっこの部分は配列を示しています。
つまり、この変数は、10個の部屋を持つ変数なのです。
配列にしたのは、このインスタンスにボタンを登録する際に、コードを効率的に記述するためです。
(インスタンスを一つ生成するだけなら、配列にする必要はありません)


UserFormの初期化イベントの際に、このインスタンスに数字のコマンドボタンを登録しています。
UserForm_Initialize() の中をご覧ください。

NumBtn(0)には、コマンドボタンb0 を登録します。
コードで書くと、
NumBtn(0).NewClass Controls("b0"), 0
となります。

NewClass によって、コマンドボタンb0 と 数字の 0 をインスタンスに登録し、
ボタンをクリックしたときに、クラスで記述したクリック時イベントが実行されるようになります。


今回は、繰り返し処理によって、コマンドボタンのb0 から b9 までをインスタンスに登録しています。

これで、仕込みは終了です。

このフォームには、各数字ボタンのクリック時イベントが記述されていないことを確認してください。





それでは、フォームを表示して、数字のボタンを押してみましょう。

1 のボタンを押すと、上部のテキストボックスに 1 と表示されます。
同様に、2 のボタンを押せば、 2 と表示されます。






VBAって奥が深いですね。

奥が深いと言えば、エクセルって色々な機能があって、使い方によってはまるで手品(マジック)のようになるんですよね。

VBAをからめると、さらにドッキリ度がアップします。親子のやり取りを通じて、そんなエクセルの面白さが満載の本が、

子どもの“プログラミング的思考"をグングン伸ばす本

この本、おすすめですよ(^^)



だい
コメント (28)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ExcelVBAの練習 ユーザーフォームのボタンをクリックした時に別のブックを開きましょう

2017-05-11 19:09:35 | ExcelVBA
こんにちは。今日の上田はとてもいい天気。こんな日はワンコと一緒に

山菜採りにでも行きたいなぁ。今はこごみにタラの芽、こしあぶらなど

天ぷらにしたらおいしい食材が、お山でタダで手に入る素晴らしい時期なのです(^^♪


しかしお仕事も大好き!山は週末に行くことにして

今日も生徒さんからの質問を取り上げます。

「せんせーい、私『アプリ作成で学ぶ ExcelVBAプログラミング
ユーザーフォーム&コントロール』
買ったんですよ」

まぁありがとう。で?

「練習でユーザーフォームを作りました」
「ユーザーフォームにボタンを配置して、クリックしたら別のブックを開くようにコードを書いてみました」
「でもそのあとが・・・」

こおゆうことね↓

【Book1にユーザーフォームを作成し、ここからBook2を開くようにする】

ではExcelを起動します 私はExcel2010を使用しています

開発タブを選択(※開発タブが非表示の場合は、ファイルタブ→オプションより設定)

そしてVisualBasicを選択するとエディタが開きます




挿入→ユーザーフォームよりユーザーフォームが作成されます このフォームの名前は
「UserForm1」です。Excelのほうで勝手につけてくれた名前です もちろん変更もできますが
このまま使います



ツールボックスからボタンを選択してユーザーフォームに配置



プロパティウィンドウでオブジェクト名を「Btn_book2」
Captionを「Book2を開く」にする
※オブジェクト名は自分で好きな名前をつけてOK。私は「Btn_book2」にしましたよ
※Captionはボタン上に表示したいもの



いったんここで任意の場所に名前をつけて保存しておきましょう

ブックウィンドウに切り替えるためにエディタの左上のエクセルマークをクリックします



「名前を付けて保存」ダイアログを表示しましょう

保存時の注意ですが今回はコードを含んだファイルとして保存したいので、
ファイルの種類を「マクロ有効ブック」にします
名前は最初に表示されている「Book1」のままでいいです
では保存しましょう



出来たファイルは「Book1.xlsm」になります。


さて
次は先ほど作成したユーザーフォームの起動のチェックをしましょう。

エディタに切り替えます。開発タブ→VisualBasic

挿入メニュー→標準モジュール



ユーザーをフォームを起動させるためのコードを記述します

以下のように記述↓



「UserForm1.show」は「UserForm1を表示しなさい」という意味です

このコードをワークシート上にボタンを作って登録していきますよ

ブックウィンドウに切り替えます(エディタ左上のエクセルマークをクリック)

開発タブ→挿入→フォームコントロールのボタンをクリック



ワークシート上で右斜め下にドラッグしてボタンを作成する と同時にマクロの登録ダイアログが表示
されるので「ShowForm」を選択して→OK



「ボタン1」というボタンが作成されました 一度セルをクリックし、ボタンの編集を解除したあと
「ボタン1」をクリックしてみましょう

おっユーザーフォームが表示されました。



さて、このユーザーフォームの「Book2を開く」ボタンをクリックしてみましょう

ボタンは押せるけど何も動作しません。そうです。だってまだこのボタンの動作を
登録していませんから(^^

「Book2というファイルを開く」という動作を登録していきましょう。

おっと、Book2というファイルを作成しておかなければなりませんね。

いったんBook1を閉じてもいいし、このまま新規作成でもいいので
適当なデータを入れたBook2.xlsxを作成しましょう。(ファイル名はBook2、ファイルの種類は
Excelブックですよ)

私はこんなBook2にしました↓




ではBook2ファイルは閉じておきましょう

さてBook1.xlsmを開き、続きをやっていきましょう

エディタを開きます(Altキー+F11キーがショートカットです)

表示されているユーザーフォームのボタンをダブルクリックします

ここに「Book2というファイルを開く」コードを記述していきます
画像のとおりに記述しましょう ただし"C:\Users~~"はPCごと違いますので、Book2ファイルのあるパスを記入しましょう




このコードは「Workboooks.Open」 まさに「あるワークブックを開きなさい」という意味です。そして
そのあとに書いてあるファイルのパスで、ファイルの場所と名前を指定しています

ユーザーフォームのボタンをクリックしたときの動作の登録はこれで以上です

ブックウィンドウに切り替えて、ワークシート上のボタンからユーザーフォームを表示し、
さらに「Book2を開く」ボタンをクリックしましょう

ほら!ユーザーフォームの後ろにBook2が開いています



はぁ

ここまで長々ありがとうございました。

「せんせーい」
「せんせーい」

え?Book2の前のユーザーフォームが邪魔?

まぁ確かにそうね・・これじゃBook2の操作ができませんね・・汗

「それなんですよ!理想はBook2を開いたときにユーザーフォームを閉じたいんです」

はい!もう一度エディタに切り替えますよ(今開いているユーザーフォームは×ボタンで閉じ、Book2も閉じてから)

ユーザーフォームのボタンをダブルクリックし、先ほどのコードの下に1行追加しましょう



「Unload Me」は「私(UserForm1)を閉じます」という意味です

これでもう一度やってみましょう
(ブックウィンドウに切り替えて、ワークシート上のボタンからユーザーフォームを起動)

「お~これですよ♪」
「でもーついでにBook1も閉じたいなぁ」

了解
ではBook2を閉じて、Book1のエディタに戻ってさらにもう一行追加ね



「ThisWorkbook.close」は「このワークブック(Book1のこと)を閉じなさい」という意味です。
(フォームとブックでは 閉じるときの書き方が違うのでややこしいですね)

これでOK

「はーい では練習しまーす」

うんがんばって(^^♪


エクエルって奥が深いですね。

奥が深いと言えば、エクセルって色々な機能があって、使い方によってはまるで手品(マジック)のようになるんですよね。

子どもの“プログラミング的思考"をグングン伸ばす本

この本、おすすめですよ(^^)

mihoりん

他にも色んな本を書いています。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

列幅や行の高さもコピーしたい(Excel)

2017-05-11 11:55:20 | エクセル
みなさんおはようございます。

今日も生徒さんからの質問を記事にしたいと思います。

「先生、地区のごみ当番表を作ったんですが、その表を別のシートにコピーすると

変なんです(涙)」

ん?どれどれ

「このように範囲選択してコピーしますよね。」



「別シートに切り替えて、セルB1を開始位置にして貼り付けると・・」

「ほらぁセルの幅や高さが元に戻ってしまうんですよ」



ふふふ(*^_^*)ここはExcelをお勉強した人が必ず通る道と言いますか・・

よくこのような質問をいただくんですよ。

「えー私だけじゃなかったんですねぇ」

そうですよ(*^_^*)

Excelってセルの書式とデータがコピーできるんですけど、行の高さや列幅は書式に

入らないんです。

というわけで、解決方法ですが

コピー元の表を行選択するんです。

このようにね↓



そして貼り付け先も開始行を選択して貼り付けるんです。



そうすると行の高さもコピーされましたね。

その後、表示されている貼り付けオプションで「元の列幅を保持」を選択すれば



はい(*^_^*)出来上がりです。



「おー♪」

貼り付けオプションには列幅保持があるので、行選択したものからコピーするのが

ポイントですよ。

ただしコピー元は、コピーしたい表の左右に何か入力されていると

一緒に張り付けられてしまうので後で削除してくださいね。

「なんのそのくらいはやりますよぉ(*^_^*)」

ありがとう。


エクエルって奥が深いですね。

奥が深いと言えば、エクセルって色々な機能があって、使い方によってはまるで手品(マジック)のようになるんですよね。

子どもの“プログラミング的思考"をグングン伸ばす本

この本、おすすめですよ(^^)

mihoりん
コメント (6)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

列を入れ替えましょう (Excel)

2017-05-11 11:08:13 | エクセル
今日私は、ある名簿を作っていました。



あら?郵便番号って、普通住所フィールドの左側に入れるわよねぇ・・・
なおさなくっちゃ!

このように表を作成している最中に、みなさんも列を入れ替えたくなったこと
ってありませんか?

今日は、簡単に列を入れ替える方法をご紹介しましょう。
私の作った表でやってみましょうね。

マウスをD列に持っていき、下向き黒矢印が表示されたら、クリックしてD列全体を選択↓



選択されている境界線にマウスをあわせて、上下左右の矢印が表示されたら、
Shiftキーを押しながら、左方向へ(今回はA列とB列の間に挿入したいので)
ドラッグ↓



A列B列の間に挿入線が表示されたら、先にマウスから指を放します。そのあとShiftキーから指を放しましょう。この順番が大事。



はい!出来上がり(^.^)/~~~



ちなみに、セルやセル範囲を入れ替えたい場合にもつかえますよ。

セルやセル範囲を選択し、枠線をドラッグすると、「切り取って貼り付け」が一発でできますよね。ただしこれは、ドラッグした場所に上書きされます。

選択範囲をShiftキーを押しながらドラッグするのは、「切り取ったセルの挿入」のショートカットで、ドラッグした場所に割り込んで貼り付ける機能なのです。

セルやセル範囲を選択し、境界線にマウスをあわせ、上の例と同じように、上下左右の矢印が表示されたら、Shiftキーを押しながらドラッグすればよいのです。

みなさん、練習してみてくださいな。

慣れると早いし、なんだかかっこいい気がしませんか?



エクエルって奥が深いですね。

奥が深いと言えば、エクセルって色々な機能があって、使い方によってはまるで手品(マジック)のようになるんですよね。

子どもの“プログラミング的思考"をグングン伸ばす本

この本、おすすめですよ(^^)


mihoりん
コメント (2)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

【おすすめ】

パソコン買ったらまず入れる10のアプリ