No.6ベストアンサー
- 回答日時:
ListViewControlでも良いかもしれませんが、
簡易的にWebBrowserコントロールではどうでしょう。
WorkSheet上に置いても使えますが、
mitarashiさんのようにUserFormに配置するほうが柔軟に対応できますね。
Personal.xlsにでもUserForm1を追加して
[ツールボックス]右クリック[その他のコントロール]で
Microsoft Web Browser にチェックを入れてWebBrowserコントロールをUserFormに配置します。
Formモジュールには
Private Sub WebBrowser1_BeforeNavigate2(ByVal pDisp As Object, _
URL As Variant, _
Flags As Variant, _
TargetFrameName As Variant, _
PostData As Variant, _
Headers As Variant, _
Cancel As Boolean)
Cancel = True
ActiveSheet.Pictures.Insert URL
End Sub
これくらいです。
_NavigateComplete2イベントを使ってもいいかもしれませんが。
使う時は
UserForm1.Show vbModeless
でUserFormを表示させておいてエクスプローラからドラッグ&ドロップするだけです。
早速のご回答ありがとうございます。
仰せの方法にて実現できました。
最後にUserFormが自動的に消えるコードを追加すれば、拙案(但しD&Dでフルパスが取得出来るソフトのアイコンを常にデスクトップに表示させておく必要がありますが)と比較し、処理の手数は全く同じですね。
No.7
- 回答日時:
ドラッグ&ドロップに拘らなければ
エクスプローラで選択しておいて
Sub test()
Dim w As Object
Dim x As String
On Error Resume Next
For Each w In CreateObject("Shell.Application").Windows
If InStr(TypeName(w.Document), "ShellFolder") > 1 Then
x = w.Document.FocusedItem.Path
Select Case UCase(Right(x, 3))
Case "JPG" ', "PNG"
MsgBox x
'ActiveSheet.Pictures.Insert x
End Select
Exit For
End If
Next
Set w = Nothing
End Sub
これでも可ですか。#winXP/xl2003でのみテスト。
http://hpcgi1.nifty.com/MADIA/VBBBS/wwwlng.cgi?p …
早速のご回答ありがとうございます。
なるほど、いろいろなことができるもんですなぁ。
デスクトップ上の画像にも対応できたらよいな、と思いました。
それと、複数のエクスプローラーを立ち上げている場合なんか、注意深く操作をしないと予期せぬ画像を取り込むこともあり、その点、ANo.6で紹介いただいたUserForm方式が確実性で勝っていると思いました。
No.5
- 回答日時:
Drag&Dropを受け付けるListViewControlはxl2010でも使えるのかなと思ってやってみました。
操作の手順は、
・貼り付けたいセルを選択して、右クリックメニューから拡張コマンド(ここではDD picture)を実行
・UserFormが表示されるので、エクスプローラやVix等からファイルをUserFormにドラッグ&ドロップ(複数選択対応)
・アクティブセルに画像を貼り付け(複数選択した場合は、前の画像から一行おいて連続貼り付け)
というものです。
骨格だけですので、エラー処理がありません。対応していないファイルをD&Dしたりするとエラーになりますがあしからず。
☆UserForm1モジュール
'ListViewコントロールを設置して、UserFormをお好きな寸法に設定しておく
Private Sub ListView1_OLEDragDrop(Data As MSComctlLib.DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single)
Dim i As Long
For i = 1 To Data.Files.Count
addPictures (Data.Files(i))
Next i
ActiveCell.Select
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "D&D Picture"
'必要によりアクティブセルのそばにUserFormを表示するプロシージャを呼ぶ(下記はWebで見つけた一例)
' http://homepage2.nifty.com/kmado/kvba.htm
'kFormPosCell Me
With Me.ListView1
.OLEDropMode = ccOLEDropManual
.Top = 0
.Left = 0
.Width = Me.InsideWidth
.Height = Me.InsideHeight
End With
End Sub
Private Sub addPictures(myFileName As String)
Dim myShape As Shape
Dim shapeArea As Range
Set myShape = ActiveSheet.Shapes.AddPicture( _
Filename:=myFileName, _
LinkToFile:=False, _
SaveWithDocument:=True, _
Left:=Selection.Left, _
Top:=Selection.Top, _
Width:=0, _
Height:=0)
With myShape
.ScaleHeight 1, msoTrue
.ScaleWidth 1, msoTrue
End With
Set shapeArea = ActiveSheet.Range(myShape.TopLeftCell, myShape.BottomRightCell)
shapeArea.Offset(shapeArea.Rows.Count + 1, 0).Activate
End Sub
☆標準モジュール
Sub pastePicture()
UserForm1.Show vbModeless
End Sub
☆Thisworkbookモジュール(アドインにする場合)
'セルを選択して右クリックメニューから起動
Private Sub Workbook_AddinInstall()
Dim NewB As Variant
Set NewB = Application.CommandBars("Cell").Controls.Add()
With NewB
.Caption = "DD picture" '最初D&Dにしたが&は表示されなかった
.OnAction = "pastePicture"
.BeginGroup = True
End With
End Sub
Private Sub Workbook_AddinUninstall()
On Error Resume Next
Application.CommandBars("Cell").Controls("DD picture").Delete
On Error GoTo 0
End Sub
参考
1.UserFormでListViewControlを使う
http://officetanaka.net/excel/vba/listview/index …
2.アドインの作成
保存する時に、ファイルの種類を「エクセルアドイン (*.xlam)」にします。(2010の場合)
3.アドインの登録
http://www.h3.dion.ne.jp/~sakatsu/Excel2007_Addi …
デフォルトではアドイン形式で保存すると
C:\Users\ユーザーアカウント名\AppData\Roaming\Microsoft\Addins
に保存されますが、上記URLによると
C:\Program Files\Microsoft Office\Office14\Library
に置く方が良さそうです。
早速のご回答ありがとうございます。
ちょっと私のレベルでは対応不能なようです。VBA勉強の材料にさせていただきます。
ちなみに、私の案は下記のとおりです。
(1)エクスプローラー上で対象ファイルを右クリックし、フルパスをクリップボードにゲット(D&D方式のフリーソフトでもよいのですが)。
(2)挿入したいセルをクリックした後、あらかじめ(例えば)「Alt+g」に登録しておいたPersonal.xls内の下記マクロをキー操作で実行する(ショートカットキー)。
Sub 画像挿入()
Dim buf As String, CB As New DataObject
With CB
.GetFromClipboard
buf = .GetText
End With
ActiveSheet.Pictures.Insert(buf).Select
End Sub
No.4
- 回答日時:
VBAなら近いことは出来る。
(1)一番やりやすいのは、フォルダは1定(同じフォルダに画像ファイルを集めている)として、画像ファイル名(文字列)を列のセルに集める。そうすればVBAの実行で
縦何列、横何列、間隔どれだけ、サイズなど指定して、整列させた形で(算術演算だ)配置できるよ。
(2)またはそのフォルダは、シートに挿入するものだけにして、余分なファイルを除いておけば、
指定フォルダの中のファイル名をとらえるコードは、簡単で、WEB上に出回っているから、それで1つずつ順に捉えて
そのファイル名で(1)を行うことは出来る。
ファイル拡張子に制限があると思うが。
ーー
ただし(1)でフォルダの画像ファイルをエクスプローラーで表示して置いて、エクセルシートへD&Dなどして、シートのセルにファイル名を文字列の形でセットする方法は、わからない。
ーー
エクセルは画像を主に扱うソフトでは無いので、余りあれこれ要求してもお門違い。
やりたいなら別のソフトを探すか、プログラムの域に入らざるを得ない。
ちょこちょこと質問sぢてで済むものではない。
早速のご回答ありがとうございます。
なにか複雑な作業を前提にされているようですが、私の目的とする作業は、エクスプローラーで目に止まった画像1枚をExcelシートの選択セル部分に貼付けるだけのことなんです。取りあえず、「ただ取り込むだけ」、です。但し手数少なく。ANo3お礼欄に記述した方法によれば、エクスプローラー画面に対象画像があったとして、(1)D&D、(2)貼付けたいExcelシート上のセルをクリック、(3)ショートカットキーでマクロ実行、という流れになります。
No.3
- 回答日時:
案1
応用で、Wordオブジェクトを挿入しておくのもありかもしれませんね。
案2
1. エクスプローラーでアドレスをコピー
2. [図をファイルから挿入]コマンドボタンをクリック
3. ファイル名 の欄に[Ctrl]+[V]貼り付け [Enter]
で その場所までは簡単に行けます。
参考URL:http://search.vector.co.jp/vsearch/vsearch.php?k …
早速のご回答ありがとうございます。
案2をヒントに、適当なフリーソフトを利用し、D&Dにて対象画像のフルパスをクリップボードに取得し、VBAでDataObjectを使って選択セル位置に貼付けることで、曲がりなりにも目的は達成できるのではないかと。
No.2
- 回答日時:
>シート上にドラッグ
とお考えなら、どのみち画像ファイルのパスまではWindowsエクスプローラなどでたどってるわけですよね?
だったら、アクセスキーを使ってAltを押下しながらI,P,Fと連打したあとで画像ファイルのパスまでをたどるのと最終的なトータル時間は変わらないように思えるのですが。
早速のご回答ありがとうございます。
>どのみち画像ファイルのパスまではWindowsエクスプローラなどでたどってるわけですよね?
「どのみち」ではなく、もう「Windowsエクスプローラなどでたどって」しまってから、「じゃー、この画像でも挿入してみっか」ってケースが多いんですゎ。
No.1
- 回答日時:
Office2000と2003を使っています。
word経由はいかがでしょう。
wordはドラックで出来ますね。
wordからExcelへはドラックで移動できます。
コピー&ペースト(貼り付け)も可能です。
(画像データが重いと時間が掛かります。)
私はツールバーに「図をファイルから挿入」のコマンドボタンを追加しています。
ちょっと楽です。
http://www.eurus.dti.ne.jp/yoneyama/Excel/mous_j …
早速のご回答ありがとうございます。
>word経由はいかがでしょう。
>wordはドラックで出来ますね。
確かに!。
>wordからExcelへはドラックで移動できます。
>コピー&ペースト(貼り付け)も可能です。
ドラッグ移動はできませんでしたがコピペは出来ました。
ただ、私はWordを使うと気が狂いそうになるんです。Excelは大好きなんですが・・・。
VBAなら出来るんでしょうかねぇ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) excelで検索した商品の画像(ネットワーク上の)を表示させたい。 3 2023/06/28 00:32
- Excel(エクセル) EXCEL マクロで 同じフォルダ内の複数ファイルの複数行全体を選択して1つのファイルに集約 4 2022/09/27 18:41
- Excel(エクセル) Excelの複数ファイルの複数行を別ファイル1つのシートにVBA、マクロで集約する方法 5 2022/09/13 06:30
- Excel(エクセル) EXCELのグラフを画像(JPG形式)で保存、通常実行がうまく行かない。ステップインはうまく行く 3 2022/08/30 12:06
- Excel(エクセル) Excel 毎日手作業で時間がかかって、泣きたいです、、、VBAのプロの方、助けてください。。。 3 2022/10/25 04:26
- Excel(エクセル) Excelで、あるセルだけ入力させたい、オートフィルターも使わせたい際のシートの保護 2 2023/02/23 15:14
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
- Excel(エクセル) Excel シート複数 金額日計表と日付 簡単にシートコピーしたら前日の残高と日付を変更させたい 1 2022/07/15 22:10
- Excel(エクセル) ワードのマクロについて教えてください。 1 2023/03/11 13:50
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
未成年ですがドンキでオナホ買...
-
ドンキに18禁コーナーじゃない...
-
エクセルでマウスカーソルの形...
-
Excelピボットテーブルで余計な...
-
蛍光灯はドラッグストアで売っ...
-
ワードで、表をずらしてから表...
-
線のスタイル(太さ)をまとめ...
-
タスクバーからデスクトップへ...
-
エクセルで特定のセル以下の全...
-
ドラッグストアでTENGAを買おう...
-
コスモスにTENGAは売っています...
-
イラレで急に日本語が打てなく...
-
ワードで1ページに同じ内容の...
-
エクセルの式をドラッグコピー...
-
通常、ドラッグストアとコンビ...
-
Excel(エクセル)で価格帯別に...
-
ドラッグストアでバイトをして...
-
PowerPointを使っているのです...
-
第1四半期を「4月、5月、6月...
-
エクセルでドラッグすると罫線...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
未成年ですがドンキでオナホ買...
-
エクセルでマウスカーソルの形...
-
ドンキに18禁コーナーじゃない...
-
Excelピボットテーブルで余計な...
-
蛍光灯はドラッグストアで売っ...
-
エクセルで特定のセル以下の全...
-
タスクバーからデスクトップへ...
-
ドラッグストアでTENGAを買おう...
-
コスモスにTENGAは売っています...
-
ワードで、表をずらしてから表...
-
ワードで1ページに同じ内容の...
-
Excel(エクセル)で価格帯別に...
-
エクセルの式をドラッグコピー...
-
Snipping Toolで切り取った画像...
-
線のスタイル(太さ)をまとめ...
-
通常、ドラッグストアとコンビ...
-
PowerPointを使っているのです...
-
イラレで急に日本語が打てなく...
-
エクセルの行の幅を一部だけ変...
-
一行おきに日付をすばやく入力...
おすすめ情報