[[20210916104503]] 『値のみのコピーボタン』(ゆうじ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『値のみのコピーボタン』(ゆうじ)

VBAのボタン設定で
設定したボタンを押しただけで指定した文字を
値のみコピーした状態には出来ないでしょうか。

宜しくお願いいたします。

< 使用 Excel:Excel2019、使用 OS:Windows10 >


できません。
(ah) 2021/09/16(木) 12:03

何らかのプログラムでコピー&ペーストできるようにして、
含まれている他の文字を空""に変換することでできるかなあと思ったのですが
(その「他の文字」が単位などの決まった文字であれば)、
いかがでしょうか。
間違ったことを言っていたらすみません。
(レモ) 2021/09/16(木) 12:24

よくわかりませんが、下記の様な事ですか?
http://officetanaka.net/excel/vba/tips/tips20.htm
(clip) 2021/09/16(木) 12:42

  >VBAのボタン設定

 とは? フォームコントロールからボタン等からの意味ですか?

 参考URL https://brain.cc.kogakuin.ac.jp/~kanamaru/lecture/vba2013/01-intro03.html

 >設定したボタンを押しただけで指定した文字を
値のみコピーした状態には出来ないでしょうか。

 もう少し具体的に言っていただけると回答者が解かりやすいかもです。
 式が入った文字を、別のセルにコピーするとかでしょうか?

 それとも、文章の中の特定文字を抜き取るのでしょうか?

 C1に文字列 B1= =ASC(C1) とする

 Sub 文字の引っ越し()
  Range("A1").Value = Range("B1").Value
 End Sub

 このような意味なら出来るし...
(あみな) 2021/09/16(木) 12:46

clipさん、ありがとうございます。
私が使用させていただいたのはこちらでした。
https://vbabeginner.net/replace-selected-cell-range/

sFind = "単位"
sReplace = ""
とするとセル内の単位が削られます。

このままだと選択範囲がよく分からなかったので、
Dim文のすぐ後ろに Range("A1:A10").Select を入れていました。
でも、よく考えるとセルの値ごと変わってしまいますね…
質問者さんが希望していることとは違う可能性が高いです。
お手数おかけしてすみません。
(レモ) 2021/09/16(木) 12:57


DataObjectオブジェクトを使えば、希望することはできるでしょう.
https://www.moug.net/tech/acvba/0020034.html
が参考になるでしょうか。

ただし、コピーする段階で値だけとしなくても、
貼り付ける段階で値だけに限定するのが普通ですし、既存の機能が使えて便利では?
貼付はどこにどんな風にするのですか?

(γ) 2021/09/16(木) 13:46


色々な方法を教えて頂き有難うございます
希望する物品をコピーして別シートのカレンダーに貼り付けたいのですが
スタッフが皆コピーペーストを値だけで出来ないもので
(そのままでした場合はカレンダーのレイアウトが見にくくなる為)
何か良い方法はないものかと模索していました。
(ゆうじ) 2021/09/16(木) 14:21

端折った説明ばかりでは伝わりません
下を見て出直しなされ

“どうしたら伝わるか”を考える番組です!
https://www.nhk.or.jp/school/kokugo/otsuta/

何を言いたいの?
https://www2.nhk.or.jp/school/movie/bangumi.cgi?das_id=D0005150166_00000

(1ミリも伝わりません) 2021/09/16(木) 15:54


どこかのセルに、物品のリストがありますか
現在なくても用意できますか

(マナ) 2021/09/16(木) 16:05


>スタッフが皆コピーペーストを値だけで出来ないもので

単に手順を書いておけば良いのでは。
つまらない事に気を使うより、スタッフの育成が先では。
入門レベルの基本操作なので。
(ah) 2021/09/16(木) 17:23


 多数の人が編集するブックだと、書式を壊されるのは、あるあるですね

 (1)書式を整えるマクロをつくって、時々実行する とか
 (2)上のマクロを、保存前や印刷前に自動で実行する とか
 するのがいいと思います。
 
 また、「貼り付け」の作業方法としては、
 (a) ショートカットキー(Ctrl+V) 
 (b) リボンのボタンをクリック
 がありますが、これを「値の貼り付け」置き換えるとすると、

 (a)は比較的簡単です。
 Private SW_PasteValue As Boolean
 Sub SetSortCut()
   If SW_PasteValue Then
      Application.OnKey "^v"
   Else
      Application.OnKey "^v", "PasteValueAndNumFormat"
   End If
   SW_PasteValue = Not SW_PasteValue
 End Sub
 Sub PasteValueAndNumFormat()
    Application.CommandBars.ExecuteMso "PasteValuesAndNumberFormatting"
 End Sub

 というよなマクロをつくって、SetSortCutを実行するたびに Ctrl+Vの動作が変わります。

 (b)はちょっと面倒です。 なので割愛
(´・ω・`) 2021/09/16(木) 17:37

 (b)の方法ですが、customUI14.xml をどうするかというと...
 CustomUI とかをキーにして検索してください。

 ----- customUI14.xml --------------
 <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
	<commands>
		<command idMso="PasteGallery" onAction="ActionPasteValueAndNumFormat" />
		<command idMso="PasteMenu" onAction="ActionPasteValueAndNumFormat" />
		<command idMso="Paste" onAction="ActionPasteValueAndNumFormat" />
	</commands>
 </customUI>

 ------ 標準モジュール -------------- 
 Private SW_PasteValue As Boolean
 Sub SetSortCut()
   If SW_PasteValue Then
      Application.OnKey "^v"
   Else
      Application.OnKey "^v", "PasteValueAndNumFormat"
   End If
   SW_PasteValue = Not SW_PasteValue
 End Sub
 Sub PasteValueAndNumFormat()
    Application.CommandBars.ExecuteMso "PasteValuesAndNumberFormatting"
 End Sub
 Sub ActionPasteValueAndNumFormat(Context As IRibbonControl, ByRef CancelDefault)
   If SW_PasteValue Then
      Application.CommandBars.ExecuteMso "PasteValuesAndNumberFormatting"
   Else
      CancelDefault = False
   End If
 End Sub
(´・ω・`) 2021/09/16(木) 17:40

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.