(41) セル内容のコピーと貼り付け!
1. セルの コピー 、 移動 、 貼り付け
2. 形式を選択して、貼り付け
「広告」
(41) セル内容のコピーと貼り付け!
Excel メニューバーの [ヘルプ] - [更新プログラムのチェック] にて、適用されていないアップデートがあれば行ってください。
Excel 2016 for Mac 環境での説明となりますので、 Mac版 Excel 2011 では( VBA が利用できますが )同じ結果にならない場合があるかもしれません。
現状、 VBE 内で日本語を記述すると(貼り付けのみ可能な場合あり)乱れたり、保存時にクラッシュすることが多いため、 VBAコード は「未変換の英数字のみ」で記述してください。(テキストエディタからの貼り付けは可能)
今回は、コードのみの説明(一部は復習)となります!
1. セルの コピー 、 移動 、 貼り付け
上記3パターンは、同一結果となる「コピー&ペースト(貼り付け)」を表す。Range("B2:C3")
Range("A1").Copy
Range("B2:C3").Select
ActiveSheet.Paste
Range("A1").Copy
ActiveSheet.PasteApplication.CutCopyMode
Range("A1").Copy Range("B2:C3")= False
セル(範囲)の全内容のコピーは Rangeオブジェクトの Copy メソッド、(同)移動は Cut メソッド、(同)貼り付けは Paste メソッド を用いる。
Copy 、 Cut 、 Paste メソッドの引数を省略した場合、クリップボード経由となる。
なお、 Cut メソッドの書式は Copy メソッドと同様のため、上記3パターンの Copy を Cut に置き換えればよい。
Copy 、 Cut は Range オブジェクトのメソッドで、 Paste は Worksheet オブジェクトのメソッドとなる。
Application.CutCopyMode に False を設定すると、コピー元のセル範囲の外枠が点滅した状態を解除できる。
False に変更するまでは、「コピー(移動)元のセル範囲」を別のセル範囲にも(繰り返し)貼付け可能だ。
2. 形式を選択して、貼り付け
「形式を選択して、貼り付け」は、 Rangeオブジェクト(Cellsプロパティ)の PasteSpecial メソッドを用いる。Range("A1").Copy
Range("B3:D4").PasteSpecial xlPasteValuesRange("E3:E4").PasteSpecial xlPasteFormulas Range("F3:F4").PasteSpecial xlPasteFormats
Range("G3:G4").PasteSpecial Transpose:=True
Application.CutCopyMode = False
この場合の Rangeオブジェクトには、「貼り付け先のセル範囲」を指定する。
メソッドの形式は、以下のとおり。
Range.PasteSpecial 貼り付け対象, 演算, 空白セル, 行列入れ替え
名前付き引数は、順に Paste Operation SkipBlanks Transpose となる。
SkipBlanks 空白セルを無視しない(False、規定値)、空白セルを無視する(True)
Transpose 行列を入れ替えない(False、規定値)、行列を入れ替える(True)
貼り付け対象 定数 | 説明 |
---|---|
xlPasteAll (既定) | 全て |
xlPasteAllExceptBorders | 罫線を除くすべて |
xlPasteValues | 値 |
xlPasteFormulas | 数式 |
xlPasteFormats | 書式 |
xlPasteValuesAndNumberFormats | 値と数値の書式 |
xlPasteFormulasAndNumberFormats | 数式と数値の書式 |
xlPasteComments | コメント |
xlPasteValidation | 入力規則 |
xlPasteColumnWidths | 列幅 |
xlPasteAllUsingSourceTheme | コピー元のテーマを使用してすべて貼り付け |
xlPasteAllMergingConditionalFormats | すべての結合されている条件付き書式 |
演算 定数 | 説明 |
---|---|
xlPasteSpecialOperationNone (既定) | 演算をしない |
xlPasteSpecialOperationAdd | 加算 |
xlPasteSpecialOperationSubtract | 減算 |
xlPasteSpecialOperationMultiply | 乗算 |
xlPasteSpecialOperationDivide | 除算 |
セル参照やセル操作の説明は、もう少しで終わりです!
退屈かもしれませんが、説明はどこかでしないといけませんので、あと少し我慢してくださいね。
お疲れ様でした!
現状、 VBE 内で日本語を記述すると(貼り付けのみ可能な場合あり)乱れたり、保存時にクラッシュすることが多いため、 VBAコード は「未変換の英数字のみ」で記述してください。(テキストエディタからの貼り付けは可能)
「広告」
最後まで読んでいただき、ありがとうございます。
ぜひ、右側の「人気ブログランキング」投票に ご協力ください。
また、お越しくださいませ。
// アタル
「広告」
コメント
コメント一覧 (6)
ExcelVBAについて大変詳しく書かれていて感服しております。
記事の内容と少しずれてしまい申し訳ないのですが、
現在、Excel2016 for MacのVBAからOpenステートメントを利用して、
日本語ファイル名をOpenするとエラーコード:75(パス名が無効)
となってしまう現象に悩まされています。
Excel2016 For MacのVBAについてここまで詳しく書かれているサイトが他になかったもので、何かお分かりでしたらご教授いただけないかと思い、コメントさせていただきました。
不躾で恐縮ですが、何卒よろしくお願い致します。
しかし、お役に立てそうもありません。
(Excel2016 for Macにて)現状、 VBAコード 内で日本語を記述すると(貼り付けのみ可能な場合あり)乱れたり、保存時にクラッシュすることが多いため、 VBAコード は「未変換の英数字のみ」で記述してください。
上記のような(記事記載済みの)「注意点」を含め、Mac版の Excel2016(VBA・マクロ) の日本語対応に関しては、色々と問題があります。
マイクロソフト自体、「Excel2016 for Mac」のVBAを正式リリース済みと【未だ】言っていないような…
日本語処理に関しては…
Windows版のVBAは、「Shift-JISコード」ではなく内部的に「UniCode」で日本語が処理されているのをご存知でしょうか? そのあたりに問題がありそうな気がします。
「英数字のみ」のファイル名でも問題無ければ、ファイル名に日本語を含めないのが最善かと思います!
(Excel2016とExcel2011は)1台のMac上で共存可能なため、「Mac版 Excel 2011」のVBAにて問題なく動くのであれば…
ご丁寧なお返事ありがとうございます!
Exce2016 for Macでは日本語の扱いに関してはまだまだ不安定なのですね。。。
>Windows版のVBAは、「Shift-JISコード」ではなく内部的に「UniCode」で日本語が処理されている
こちらの情報をもとにもう少し試行錯誤してみようかと思います。
突然の質問にもかかわらず迅速にお答えいただき、大変感謝しております。
ありがとうございました!
VBA(VB)内の「OS依存部分のコード」は、Macの場合「AppleScript」で記述する必要があります。
Dim myPath As String
myPath = MacScript("ChooseFile") ' ファイル選択ダイアログを表示
MsgBox myPath
「Mac版 Excel2011」では上記のように「MacScript」コマンドを利用して AppleScript を実行できましたが、「Mac版 Excel2016」では「AppleScriptTask」コマンドを用いる方法に変更になったようです。
本日、検索した翻訳文書で気付いたしだいで、ごめんなさい。
「AppleScript」のみを別ファイルに保存し、呼び出すような形で面倒そう…
(詳細は、「vba AppleScriptTask」で検索)
OS依存部分を含むVBAコードは、「Windows版のExcel」利用がオススメです。
Windows版の「VBAサンプルコード」なら、すぐ検索できますので…
筆者も MacのBootCamp環境に Windows10 を入れ、「Office2016 for Windows」をインストールして利用中…
Mac版の不具合かどうか見極める意味でも Windows版が必要で、「Office365 Solo」の2ライセンス(Mac/Win併せて)は重宝しています。
「(拡張子指定した)フォルダ内の全ファイル名を取得」する、 AppleScript のサンプル付きです。
もちろん「フォルダ選択ダイアログ」を利用してますので、ぜひお読みくださいませ!
https://mac-excel-vba.blogspot.com/2021/08/AppleScriptTask-01.html
[1] 子フォルダを含め、フォルダ内の全ファイル名の取得
[2] テキストファイルの入出力
[3] PDFファイル内の全テキストを抽出
https://mac-excel-vba.blogspot.com/search/label/AppleScriptTask
新ブログは 通称 Cocoa AppleScript と呼ばれる ASOC ( AppleScript Objective-C ) にも手をつけています!