
いつもお世話になっております。
1.件名の通り、下記VBA構文をネットで見つけ、Windowsで試したところ、うまく作動しました。
しかし、macOSだと、マクロは動きますが、画像が白い□に、赤いばってんが表示され、うまく機能していないようです。デバックが出てこないので原因がわからずで。。。
どこに手を加えれば良いか、わからないので、恐縮ですが、VBA全文ご教示くださいますと幸いです。
2.また、同マクロでpngファイルでも作動できるようにしたいのですが、どこか調整すべき点はありますでしょうか。
環境は以下の通りです。
macOS High Sierra ver 10.13.6
Excel for Mac ver16.16.1
不足情報あれば、おしらせください。
よろしくおねがいします。
以下構文↓
' 選択したセルに記載された画像ファイルパス(名)のファイルを読み込み、EXCELに貼り付ける。
'
Sub EggFunc_pasteImage()
' 変数定義
Dim filePath As String
Dim targetCell As Range
' エラーを無視する(画像ファイル読込み失敗時用)
On Error Resume Next
' 選択したセル範囲を順次処理
For Each targetCell In Selection.Cells
' セルを選択
targetCell.Select
' 値があれば
If targetCell.Value <> "" Then
' 画像ファイル名として取得
filePath = targetCell.Value
' 画像読込み
ActiveSheet.Pictures.Insert(filePath).Select
' 画像が大きい場合、画像サイズをセル幅に合わせる
If Selection.Width > targetCell.Width Or Selection.Height > targetCell.Height Then
If Selection.Width / targetCell.Width > Selection.Height / targetCell.Height Then
Selection.Height = Selection.Height * (targetCell.Width / Selection.Width)
Selection.Width = targetCell.Width
Else
Selection.Width = Selection.Width * (targetCell.Height / Selection.Height)
Selection.Height = targetCell.Height
End If
End If
' 表示位置をセル中央に移動
Selection.Top = targetCell.Top + (targetCell.Height - Selection.Height) / 2
Selection.Left = targetCell.Left + (targetCell.Width - Selection.Width) / 2
End If
Next
End Sub
No.4ベストアンサー
- 回答日時:
エラー原因が不明のまま
>' エラーを無視する(画像ファイル読込み失敗時用)
>On Error Resume Next
を使うのはお勧めできません。取り得ず外しておきましょう。
>' 画像ファイル名として取得
>filePath = targetCell.Value
Pathもしているのでしょうが、WindowsとMacOSでは区切り文字が異なります。
これが原因ではないでしょうか。
こちらを参考にしてください。
ファイルパスのフォルダの区切り記号が違う
http://darumaexcel.uijin.com/info/pause.html

No.3
- 回答日時:
調べてみたらMac版OfficeのVBAエディタはまだ完全ではなく、Windows版でできるはずの機能が未実装だそうです。
ただしブレークポイントの設定やイミディエイトウィンドウは使えるので、それで地味に追いかけるしかないでしょう。そのへんは以下に解説があります。http://gadgets-geek.blog.jp/archives/1045571708. …
No.2
- 回答日時:
WindowsとMac、OSが違うと仮想PCを構築し使うのでは?
1)仮想PC(バーチャルマシン)を構築し、Windowsをインストール
Virtual PC for Mac 7
VMware Fusion
エミュレター
2)Boot Campを利用しWindowsをインストールし、デュアルブート
3)互換性のあるレイヤーを準備し、APIレベルでOSの差異を吸収
Wine
CrossOver Mac
4)Microsoft 社のリモートデスクトップMicrosoft Remote Desktop Connection Client for Mac 2
No.1
- 回答日時:
参照設定でしょうね
開発ーーーvba-ーーツールーーー参照設定
使うサブルーチンに チェックがついていると思いますが、両方比べればwinにあって、macにないものが 原因
だからと言って、macにそれに該当するものがあるか? 何に該当するか
難しい・・・
もしそうなら、補足にて。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- PowerPoint(パワーポイント) ExcelのVBAコードについて教えてください。 3 2022/05/25 14:32
- Excel(エクセル) Excel2019 マクロを使用し画像を貼り付けした際のリンク切れについて 2 2022/11/15 16:14
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/05/26 17:19
- Excel(エクセル) エクセルで同じ数字同士を自動で線で結ぶVBAを教えてください 6 2022/04/26 23:13
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ダブルクリックすると現在の時...
-
データが入力されている隣のセ...
-
エクセルテキストボックスの文...
-
VBAの判定の仕方を教えてくださ...
-
EXCEL VBA Rangeの指定方法につ...
-
EXCELマクロ 保護されているシ...
-
VisualBasic6.0のDataGrid中の...
-
FileSearch2007に変わる構文に...
-
エクセルVBAについて質問です。...
-
離れた複数のセルのどこかに文...
-
エクセルVBA(実行時エラー438...
-
VBA セルに合わせて移動するが...
-
VBAで、貼り付け禁止命令を実現...
-
iPhoneのExcelアプリで、別のシ...
-
【マクロ】オートフィルターの...
-
【マクロ】A列にある、日付(本...
-
エクセル:マクロ「Application...
-
エクセル: セルの枠を超えて表示
-
エクセルのセル内に全角数字を...
-
【エクセル】期限アラートについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
データが入力されている隣のセ...
-
EXCELマクロ 保護されているシ...
-
エクセルテキストボックスの文...
-
VBAで、貼り付け禁止命令を実現...
-
エクセルVBA(実行時エラー438...
-
【VBA】InputBoxで文字をセルに...
-
VBA セルに合わせて移動するが...
-
Windowsで動くVBAがmacOSで動か...
-
ダブルクリックすると現在の時...
-
メッセージを1度だけ表示したい。
-
ハイパーリンクされているファ...
-
Swing 編集不可でも選択可能なJ...
-
VBAで丸をつけたいです。
-
(VBA)アクティブセルを起点に...
-
Excel VBA セルを指定個数ラン...
-
【VBA】参照値を1ずつ増やして...
-
エクセルのVBAでダブルクリック...
-
セル色を5秒間隔で変える
-
StringGridでの文字入力制限
-
アクティブセルの行のセルを複...
おすすめ情報