Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4851 / 13646 ツリー ←次へ | 前へ→

【54041】書式無しペースト/オートフィル やす 08/2/21(木) 11:23 質問[未読]
【54042】Re:書式無しペースト/オートフィル ichinose 08/2/21(木) 12:05 発言[未読]
【54044】Re:書式無しペースト/オートフィル SS 08/2/21(木) 14:47 発言[未読]
【54053】Re:書式無しペースト/オートフィル やす 08/2/21(木) 20:13 発言[未読]
【54054】Re:書式無しペースト/オートフィル ichinose 08/2/21(木) 22:57 発言[未読]
【54056】Re:書式無しペースト/オートフィル やす 08/2/22(金) 10:19 お礼[未読]
【54090】Re:書式無しペースト/オートフィル SS 08/2/24(日) 7:55 発言[未読]

【54041】書式無しペースト/オートフィル
質問  やす  - 08/2/21(木) 11:23 -

引用なし
パスワード
   VBA初心者で申し訳ありません。

Excel2003で色や罫線を整えたデータ入力用のシートを作りました。
そのシートへの入力の際にセルのコピーやオートフィルを使うとコピー元の書式もコピーされてしまします。
オートフィルオプションや貼り付けオプションで注意すれば書式なしでコピーもできますが、これを入力者に意識させたくありません。
あるシートだけ、通常のコピーやオートフィルを行っても書式をコピーできないようなVBAを組むことはできないでしょうか。

よろしくお願いします。

【54042】Re:書式無しペースト/オートフィル
発言  ichinose  - 08/2/21(木) 12:05 -

引用なし
パスワード
   ▼やす さん:
おはようございます。

>
>Excel2003で色や罫線を整えたデータ入力用のシートを作りました。
>そのシートへの入力の際にセルのコピーやオートフィルを使うとコピー元の書式もコピーされてしまします。
>オートフィルオプションや貼り付けオプションで注意すれば書式なしでコピーもできますが、これを入力者に意識させたくありません。
>あるシートだけ、通常のコピーやオートフィルを行っても書式をコピーできないようなVBAを組むことはできないでしょうか。


案1

入力可能なセルにコピーやオートフィルを止めるより、

セルの入力の際に発生する

Worksheet_Change

イベント内で本来の書式に再設定する。

私は、もうユーザーにシートを触らせるインターフェースには
殆どしなくなりましたが、触らせてた頃は、よくこの方法を
使っていました。


案2

マンマシンインタフェースとして、ユーザーフォームを使う。

Spredsheetコントロールというのがあります。

通常シートほぼ同じようにユーザーフォーム上で扱えます。

フォーム上にシートがある感覚です。

イベントも本来のExcelシートより細かく発生します。

確かコピーやペーストの制御も可能だと思います。

多少本家シートと違いもあり、慣れるまでは
問題もあるかもしれませんが、私は、重宝しています。

検討してみてください。

【54044】Re:書式無しペースト/オートフィル
発言  SS  - 08/2/21(木) 14:47 -

引用なし
パスワード
   ▼ichinose さん:
▼やす さん:
こんにちは、よこから失礼します

Spredsheetはバージョンによって使えなくなることがあります。
私も必死で作った自信作がぽしゃった苦い経験があります。
(EXCEL2000で作ったものがEXCEL2003でエラーとなった。)
EXCELに明るくない方を対象とするなら注意が必要と思いますよ。

>>>案2
>
>マンマシンインタフェースとして、ユーザーフォームを使う。
>
>Spredsheetコントロールというのがあります。
>
>通常シートほぼ同じようにユーザーフォーム上で扱えます。
>
>フォーム上にシートがある感覚です。
>
>イベントも本来のExcelシートより細かく発生します。
>
>確かコピーやペーストの制御も可能だと思います。
>
>多少本家シートと違いもあり、慣れるまでは
>問題もあるかもしれませんが、私は、重宝しています。
>
>検討してみてください。

【54053】Re:書式無しペースト/オートフィル
発言  やす  - 08/2/21(木) 20:13 -

引用なし
パスワード
   ▼ichinose さん:
▼SS さん:
サポートありがとうございます。
どちらかといえばWorksheet_Changeのほうが私には敷居が低そうなんですが、入力可能なセルはセル毎に背景色や罫線の種類が違うんです。説明不足ですみません。
このような場合、本来(変更前)の書式に戻すには、どこか作業用として全く同じ書式のシートを用意しておき、Worksheet_Changeのイベントが起こる前の書式を作業用シートの同じセルの書式情報だけコピーする、ということをやる必要があるのでしょうか。
また、全然別の話に飛んでしまうような気もしますし、そういう仕様なのかもしれませんが、Worksheet_Changeイベントで書式情報をコピーしたりするとシート上でアンドゥができなくなってしまうように思います。
ユーザの使い勝手をほぼそのままに、書式のコピーだけを制限する方法はやはり無理なのでしょうか。

【54054】Re:書式無しペースト/オートフィル
発言  ichinose  - 08/2/21(木) 22:57 -

引用なし
パスワード
   こんばんは。

>どちらかといえばWorksheet_Changeのほうが私には敷居が低そうなんですが、入力可能なセルはセル毎に背景色や罫線の種類が違うんです。説明不足ですみません。
>このような場合、本来(変更前)の書式に戻すには、どこか作業用として全く同じ書式のシートを用意しておき、Worksheet_Changeのイベントが起こる前の書式を作業用シートの同じセルの書式情報だけコピーする、ということをやる必要があるのでしょうか。

それでも良いでしょうね、私なら、そうするかなあ(非表示シートにしておいてね)

>また、全然別の話に飛んでしまうような気もしますし、そういう仕様なのかもしれませんが、Worksheet_Changeイベントで書式情報をコピーしたりするとシート上でアンドゥができなくなってしまうように思います。
ということは、イベントは使えませんね!! 

Undo機能ぐらいは我慢してもらって・・・。


それでも というなら、やっぱりSpreadsheetコントロールです。


コピーや切り取りの制御もできますし、Undo機能も可能ですよ!!

SSさん、こんばんは。

>私も必死で作った自信作がぽしゃった苦い経験があります。
>(EXCEL2000で作ったものがEXCEL2003でエラーとなった。)
なるほど、Excel2000では、Spreadsheet9.0であり、

2003は、確かSpreadsheet10.0と11.0 が使用可能だったと
思いますから、ブックだけ移行したとしたら、動作しません。

こういうことですか?

そうだとしたら、許されるか否かは、別として、Excel2000から、Spreadsheet9.0
を入れ込んだとしたら どうでしょうねえ?
(Excel2000のライセンスがあれば、許されるのかなあ?)

又は、Spreadsheet9.0の内容をSpreadsheet10.0か11.0に移行するとかね!!
(仕事なら、これは、お金になるなあ、Excelバージョンアップごとにメンテ料が取れます)

もっとも、Excel2007では、Spreadsheetがないんですね
(MSから、DWすれば使用可能ですが・・・)

【54056】Re:書式無しペースト/オートフィル
お礼  やす  - 08/2/22(金) 10:19 -

引用なし
パスワード
   皆さんありがとうございました。
とても勉強になりました。
やっぱりSpreadsheetコントロールは後で大変になりそうなのでWorksheet_Changeを使ってがんばってみます。
解らないところがありましたら、またお願いします。

【54090】Re:書式無しペースト/オートフィル
発言  SS  - 08/2/24(日) 7:55 -

引用なし
パスワード
   ▼ichinose さん:
おはようございます。

あえて今更返答する内容も無いのですが、
いつもお世話になっておりますので一応。

>SSさん、こんばんは。
>
>>私も必死で作った自信作がぽしゃった苦い経験があります。
>>(EXCEL2000で作ったものがEXCEL2003でエラーとなった。)
>なるほど、Excel2000では、Spreadsheet9.0であり、
>
>2003は、確かSpreadsheet10.0と11.0 が使用可能だったと
>思いますから、ブックだけ移行したとしたら、動作しません。
>
>こういうことですか?

その通りです。
SpreadsheetのVerの違いでフォームに乗っているだけでエラーとなり
Initializeの時点で止まりました。

>そうだとしたら、許されるか否かは、別として、Excel2000から、Spreadsheet9.0
>を入れ込んだとしたら どうでしょうねえ?
>(Excel2000のライセンスがあれば、許されるのかなあ?)
>
>又は、Spreadsheet9.0の内容をSpreadsheet10.0か11.0に移行するとかね!!
>(仕事なら、これは、お金になるなあ、Excelバージョンアップごとにメンテ料が取れます)
>
>もっとも、Excel2007では、Spreadsheetがないんですね
>(MSから、DWすれば使用可能ですが・・・)

パソコン初心者でも業務計算ができるようにとマクロを組んでいますので
アドイン操作すらNGでしたので、深く追求せずに方針変更しました。
やりたかったことは、リストを表示してその中からマウスクリックした数値を
取得するだったのですが、リストがフォームに表示するには大きかったもので
すからSpreadsheetを利用しようとしました。
変更後は、2次元配列とラベル群とスクロールバーの組み合わせにクラスモジュールを
利用してそこそこのものが作れました。(クラスモジュールの練習になりました)

4851 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free