iPadでExcelのマクロは動きますか?

このQ&Aに関連する最新のQ&A

A 回答 (1件)

動きません



以上
    • good
    • 1

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセル(マクロ記録)

よろしくお願いします。
エクセルで、印刷マクロを作ろうと考えています。
             (基本、入門者です)
マクロ記録で、作っていますが、
記録終了するたびに「 印刷 」がかかっては、
用紙が何枚あっても足りません。

いい考えがありましたら、お教えください。
お願いします。

Aベストアンサー

#3の回答者です。

>出来たら、この i=1 の意味を教えていただけませんでしょうか?
単に、それはページ数です。

ヘルプを引用します。(PrintOut で調べました)

式.PrintOut(From, To, Copies, Preview, ActivePrinter, PrintToFile, Collate, PrToFileName, IgnorePrintAreas)

From オプション 印刷を開始するページの番号を指定します。この引数を省略すると、最初のページから印刷します。
To オプション 印刷を終了するページの番号を指定します。この引数を省略すると、最後のページまで印刷します。

と出てきます。

QExcelマクロの勉強を始めました マクロの記録で保存先を個人用マクロ

Excelマクロの勉強を始めました マクロの記録で保存先を個人用マクロブックにしようとすると ”起動フォルダにある個人用マクロブックは記録のために開かれた状態でなければなりません”とのメッセージです
ところが表示タブのウィンドウの再表示をクリックしようにもグレイになっていてクリックできません

さっぱり訳が分からずお手上げです どういったことが考えられるでしょうか
何かヒントでもよろしくお願いします
なお WindowsXP オフィス2007を使っています

Aベストアンサー

「使用できないアイテム」に設定されているのかも知れません。
以下のような操作を試してみてください。

Microsoft Officeボタンをクリックし、「Excel のオプション」をクリック
左側のウィンドウで「アドイン」をクリック
右側のウィンドウの「管理」ボックスの一覧で「使用できないアイテム」を選択して、「設定」をクリック
一覧に表示されている「個人用マクロブック(personal.xlsb)」をクリックし、「有効にする」をクリック

Qエクセル マクロコードの記述の勉強

独学でエクセルでのマクロのコード記述ができるようになりたいのですが、コードがかける人はどのようにしてかけるようになったのでしょうか?

プログラミング関係にはまったくの初心者なので、入門本を立ち読み程度読んでみたのですが、「面白そうだが、かなり手強そう」というような印象でした。

現実的な問題として、実際にコードをかける人は、プログラミング関係の学校等で学んだ人ぐらいしかいないのでしょうか?

めざすレベルはエクセルでこうしたいと考えたものを調べながらコードをかける程度のレベルです。

Aベストアンサー

> 実際にコードをかける人は、プログラミング関係の
> 学校等で学んだ人ぐらいしかいないのでしょうか?

そんな事ないです。私も独学で覚えましたから。

エクセルはマクロ記録がありますので、実際の操作を記録して書かれたコードを追っていったり、書き直したり出来ます。
VisualBasicEditor画面でコードにカーソルを置き、F1キーを押すとVBAヘルプ(たしか標準ではインストールされないので追加インストールの必要がある)が開くので、意味を調べたり、サンプルコードを見たりして覚えて行きました。
ネットにも沢山サンプルがありますし。

変数の使い方とforやif等を覚えてマクロ記録を直すだけでも結構便利になります。

QEXCEL マクロが正常に動かなくなりました

パソコンを買い替えたらEXCEL マクロが正常に動かなくなりました。
旧環境
windowsXP
Excel2003

新環境
windows7 Home Premium SP1 64bit
Excel2010 32bit

Excel2003からExcel2010への変換は済ませてあります。

[Microsoft][ODBC テキスト Driver] パス'(不明)'は正しくありません。
パス名に間違いがないことと、ファイルが置かれたサーバーに接続していることを確認してください。

と出て、adoCONcsv.Open File_csvでエラーになるようです。
自分でいろいろと調べて[Microsoft Text Driver]に関係しているのかと思い
コントロールパネル→管理ツール→データ ソース (ODBC)のプロパティ
リンク先を %windir%\SysWOW64\odbcad32.exe
作業フォルダを %windir%\SysWOW64
に変えてODBCデータ ソース アドミニストレーターのドライバタブに
[Microsoft Text Driver]が表示されているのを確認してから実行しましたがエラー内容は変わりませんでした。

アドレスバーにコピー&貼り付けをしてtest.csvを開き、ファイルパスが正しいことを確認しています。
どなたか原因をわかりやすく教えていただけないでしょうか?


以下、ソース


Dim adoCONcsv As New ADODB.Connection
Dim adoRECcsv As New ADODB.Recordset
Dim File_csv As String

File_csv = "Driver={Microsoft Text Driver (*.txt; *.csv)}; " & _
"DBQ=C:\Users\admin\Downloads\test.csv;" & _
"ReadOnly=0"



省略


adoCONcsv.Open File_csv  ←ここでエラー
Set adoRECcsv = adoCONcsv.Execute("select * FROM articles.csv WHERE (ID = 11111111) or (ID = 22222222)")



'シートtestに抽出したデータを書き込み
i = 0
Do Until adoRECcsv.EOF = True
i = i + 1
For j = 1 To adoRECcsv.Fields.Count
.Worksheets("test").Cells(i, j).Value = adoRECcsv.Fields(j - 1).Value
Next j
adoRECcsv.MoveNext
Loop

'レコードセットのクローズ
adoRECcsv.Close
'データベースのクローズ
adoCONcsv.Close

パソコンを買い替えたらEXCEL マクロが正常に動かなくなりました。
旧環境
windowsXP
Excel2003

新環境
windows7 Home Premium SP1 64bit
Excel2010 32bit

Excel2003からExcel2010への変換は済ませてあります。

[Microsoft][ODBC テキスト Driver] パス'(不明)'は正しくありません。
パス名に間違いがないことと、ファイルが置かれたサーバーに接続していることを確認してください。

と出て、adoCONcsv.Open File_csvでエラーになるようです。
自分でいろいろと調べて[Microsoft Text Driver]に関係している...続きを読む

Aベストアンサー

test.csv というフォルダ内に、articles.csv ファイルがあるのでしょうか。
変な所でファイル名を指定しているような?

CSVファイルに接続してみよう!
http://home.att.ne.jp/zeta/gen/excel/c04p47.htm
の後半部分にODBCでの説明があります。

なお、Office2010でOLEDBにて接続する場合は
Microsoft.Jet.OLEDB.4.0 → Microsoft.ACE.OLEDB.12.0
また、半角バックスラッシュ\ は \ に置き換えられます。

Qエクセルについているマクロが出てこない・・・

 エクセルをひらき、ツール→マクロ→マクロでマクロの作成ができると聞きましたが、私のエクセル2002ではマクロのその機能が空欄状態です。復帰や回復できる方法を教えて下さい。

Aベストアンサー

(1)自分でマクロの記録を採る。
    ツールーマクロー新しいマクロの記録
(2)または他人がマクロの記録をとった。
   (3)他人がVBAコード(プログラム)を組んだ
    ツールーマクローVBEープログラム作成
場合に出てくる。(1)(2)(3)ともやっていないから、出てこないのは当然。
(1)なぞはマクロの画面でマクロー編集でコードが見れます。
ーーー
本でもWEBでも、マクロに関する本1冊か、「エクセル マクロ」でWEB照会して、勉強し。予備知識をえるべきです。

QExcelマクロを削除するマクロについての質問です。

Excelマクロを削除するマクロについての質問です。

現在Excel2003で、記入に便利なようにマクロを使って「パソコンボランティア活動報告書」(以下"活動報告書")を作っています。
この活動報告書をセキュリティ警告(マクロを有効にする等)が出ないようにしてホームページに載せたいので、私なりに「新しいマクロの記録」を使って、「マクロ削除」のマクロを作ってみました。

しかしこれでは今までのマクロは削除されますが、「マクロ削除」マクロが残ってしまいます。
今までのマクロはもちろんのこと、「マクロ削除」マクロを消すためにはどうすればいいのでしょうか?


Sub マクロ削除()
'
' マクロ削除 Macro
'
'
ActiveSheet.Unprotect
ActiveWindow.SmallScroll Down:=9
Range("Q27:R27").Select
Selection.ClearContents
ActiveWindow.SmallScroll Down:=-21
Sheets("リスト項目").Visible = True
Application.DisplayAlerts = False
Sheets("リスト項目").Delete
Cells.Select
With Selection.Validation
.Delete
.Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _
:=xlBetween
.IgnoreBlank = True
.InCellDropdown = True
.IMEMode = xlIMEModeNoControl
.ShowInput = True
.ShowError = True
End With
Range("E4:P4,J5:AG5,E6:N6,R6:AG6,F7:J7,O7:AG7,C15:AG17").Select
Range("C15").Activate
ActiveWindow.SmallScroll Down:=9
Range("E4:P4,J5:AG5,E6:N6,R6:AG6,F7:J7,O7:AG7,C15:AG17,I27:O27,C28:AG41"). _
Select
Range("C28").Activate
ActiveWindow.SmallScroll Down:=15
Range( _
"E4:P4,J5:AG5,E6:N6,R6:AG6,F7:J7,O7:AG7,C15:AG17,I27:O27,C28:AG41,C42:AG44"). _
Select
Range("C42").Activate
Selection.ClearComments
ActiveWindow.SmallScroll Down:=-36
Range("AC4:AE4,F5:I5,J5:AG5,E6:N6,R6:AG6,F7:J7,O7:AG7").Select
Range("O7").Activate
Selection.ClearContents
Range("E4:P4").Select
ChDir "C:\work"
ActiveWorkbook.SaveAs Filename:="C:\work\yyyymmddパソコンボランティア活動申請及び報告書.xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
Range("E4:P4").Select

End Sub

Excelマクロを削除するマクロについての質問です。

現在Excel2003で、記入に便利なようにマクロを使って「パソコンボランティア活動報告書」(以下"活動報告書")を作っています。
この活動報告書をセキュリティ警告(マクロを有効にする等)が出ないようにしてホームページに載せたいので、私なりに「新しいマクロの記録」を使って、「マクロ削除」のマクロを作ってみました。

しかしこれでは今までのマクロは削除されますが、「マクロ削除」マクロが残ってしまいます。
今までのマクロはもちろんのこと、「マ...続きを読む

Aベストアンサー

標準モジュールに登録したマクロを削除する最も安全な方法は,
sub macro1()
 sheets.copy
 activeworkbook.saveas Filename:="C:\work\yyyymmddパソコンボランティア活動申請及び報告書.xls"
 activeworkbook.close false
 thisworkbook.saveas filename:="C:\work\yyyymmddパソコンボランティア活動申請及び報告書withマクロ.xls"
end sub
などになります。

もし,いまご質問で掲示されたマクロで「登録済みのマクロを削除している」明確な認識があるのでしたら,該当する箇所は
Sheets("リスト項目").Visible = True
Application.DisplayAlerts = False
Sheets("リスト項目").Delete
だけですので,これを上述マクロの先頭部分に追加します。

もし,ご質問に掲示されたのは正直なマクロの全文ではなく編集した内容でしたら,その削って示さなかった範囲にマクロを削除している肝心の内容が含まれていたかも知れません。確認して,そちらも勿論盛り込んでください.
他にも標準モジュールではなくシートにマクロを追加していたときは,同等の手当が必要です。

#シートモジュールと標準モジュールの使い分けについて理解していない時は,いま「どういう風にエクセルを操作してマクロを登録しているのか」,言い換えると削除したいマクロはどこにどういう操作手順で追加したものなのか,事実を丁寧に添えて追加ご質問を投稿してください。



「マクロを操作するマクロ」はコンピュータウィルスの作成にも通じる技なので,こういった公開の掲示板ではあまり触れないのがマナーになっています。

標準モジュールに登録したマクロを削除する最も安全な方法は,
sub macro1()
 sheets.copy
 activeworkbook.saveas Filename:="C:\work\yyyymmddパソコンボランティア活動申請及び報告書.xls"
 activeworkbook.close false
 thisworkbook.saveas filename:="C:\work\yyyymmddパソコンボランティア活動申請及び報告書withマクロ.xls"
end sub
などになります。

もし,いまご質問で掲示されたマクロで「登録済みのマクロを削除している」明確な認識があるのでしたら,該当する箇所は
Sheets("リスト項目").Vis...続きを読む

Qエクセル2010で作成したマクロ

エクセル2010で作成したマクロブックがあります。
このエクセルを知人にメールで送りました。

知人のエクセルは2007です。
マクロブックのフォームボタンを押しても何も動作しない状況との事です。

エクセル2010で作成したマクロブックはエクセル2007と互換性がないのでしょうか?

素人の質問で申し訳ありませんが、ご指導お願いいたします。

Aベストアンサー

>エクセル2010で作成したマクロブックはエクセル2007と互換性がないのでしょうか?

ご相談の状況からすると、まずそういう事はありません。
まぁ2010でしか動かない内容であなたがマクロを作成した可能性は確かにありますが、その場合でも「何も動作しない」という事はありません。ふつーにエラーが出て止まります。



一応あなたの側で確認しておくべきポイントとしては、
○間違ったブックを送っていないか再確認する
 ・ちゃんとマクロを付けたブックを送ったか確認する
 ・名前を付けて保存でファイルの形式をマクロ有効ブックにして保存したのを送ったか再確認する
といったところをよく確認してください


先方に対してあなたが確認すべきポイントとしては、
○「何も起こらない」とは、具体的にどんな状況なのか再確認する
 ・ホントにうんともすんとも反応が無いということなのか
 ・実は何かエラーメッセージっぽいダイアログが現れて、OKをクリックしてもマクロが動作した様子が無いとかの状況では無かったか



具体的な状況が明らかになったら、ようやく対処を検討する事ができるようになります。
●そもそもどういうマクロを作成したのか、ご自分の作成したマクロをよく確認して、「反応が現れない」マクロを書いてたんじゃないのか再確認する
 たとえば無意味にon error resume nextのような仕込みをしてたりしないか
 たとえば不適切なデータに対して何も作動せずに終わってしまうようなそもそも作りにしてたんじゃないか
 とか。

●実は何かダイアログが出てたのなら、具体的にどんなダイアログなのか正確に聞き取って、あなたの方で対処を考える
 「マクロが無効になってる」のなら、マクロを有効にして実行するように伝える
 とか。

>エクセル2010で作成したマクロブックはエクセル2007と互換性がないのでしょうか?

ご相談の状況からすると、まずそういう事はありません。
まぁ2010でしか動かない内容であなたがマクロを作成した可能性は確かにありますが、その場合でも「何も動作しない」という事はありません。ふつーにエラーが出て止まります。



一応あなたの側で確認しておくべきポイントとしては、
○間違ったブックを送っていないか再確認する
 ・ちゃんとマクロを付けたブックを送ったか確認する
 ・名前を付けて保存でファイル...続きを読む

Qexcelのマクロでrangeの選択がうまくいきません。

excelのマクロでrangeの選択がうまくいきません。
以下のマクロをsheet2に書きました。testcopyは動きますが、testcopy2は動きません。なぜなのでしょうか。どうすればいいのでしょうか。それ以外のマクロの部分との関係から、cellsを使い、数字を使ってrangeの処理をしたいのです。よろしくお願いします。

Sub testcopy()
Worksheets("sheet1").Range("B3:C10").Copy
Worksheets("sheet2").Range("e5").Select
ActiveSheet.Paste
End Sub

Sub testcopy2()
Worksheets("sheet1").Range(Cells(3, 2), Cells(10, 3)).Copy
Worksheets("sheet2").Range("e5").Select
ActiveSheet.Paste
End Sub

Aベストアンサー

>testcopyは動きますが、testcopy2は動きません

testcopyは「動作したり、しなかったりする」が正しい表現です。
  要するに今回testcopyが動いたのは▼たまたま▼ということです。

testcopy2 は当然ながらエラーになります。
何れにしろ、両方ともに問題があるということです。
その問題点は2つあります。

(1)アクティブでないシートのセルはSelect(Activate)できない
(2)複数のシートを扱うときのセルの参照は
   そのセルがどのシートのセルなのか明示する必要がある


これを踏まえて、、、、
---------------
●testcopy●

これが動作するのは
Sheet【2】がアクティブな状態で実行する場合です

Sheet【1】がアクティブな状態で実行すると
  Worksheets("sheet2").Range("e5").Select
ここで、問題点(1)の理由によりエラー。
で、先ずシートを選択、次にセルを選択と2段階にしないといけません。

  Worksheets("sheet2").Select
  ActiveSheet.Range("E5").Select

----------------
●testcopy2●

▼Sheet【1】がアクティブな状態で実行
  testcopyと同じ場所、同じ理由でエラー

▼Sheet【2】がアクティブな状態で実行
  Worksheets("sheet1").Range(Cells(3, 2), Cells(10, 3)).Copy
  ここで、問題点(2)により、エラー。
 
 Cellsの前にシートオブジェクトがないので
 Cells(3, 2), Cells(10, 3)はアクティブなSheet【2】のセルとみなされ
 (★実際はちょと違う場合もありますが今回はそう★)

 Worksheets("sheet1").Range(  ← Sheet【1】
 Cells(3, 2), Cells(10, 3))   ← Sheet【2】

このようにSheet【1】【2】が混在していることになり、エラー
で、Cellsの前にシートを付加してセルがどのシートのセルか明示してやる

Worksheets("sheet1").Range(Worksheets("sheet1").Cells(3, 2), Worksheets("sheet1").Cells(10, 3)).Copy
  
---------------------------------
で、質問者のコードを修正すると
'-------------
Sub testcopy()
 Worksheets("sheet1").Range("B3:C10").Copy
 With Worksheets("sheet2")
   .Select
   .Range("E5").Select
   .Paste
 End With
End Sub
'-------------

Sub testcopy2()
 With Worksheets("sheet1")
   .Range(.Cells(3, 2), .Cells(10, 3)).Copy
 End With
 With Worksheets("sheet2")
   .Select
   .Range("E5").Select
   .Paste
 End With
End Sub
'--------------

●ただ今回のような単純なコピーの場合は
 既出の回答にあるようにSelectなしで書くのがふうつです。
'-----------
Sub testcopy111()
 Worksheets("sheet1")
   .Range("B3:C10").Copy Worksheets("sheet2").Range("E5")
 End With
End Sub
'-----------
Sub testcopy222()
 Worksheets("sheet1")
  .Range(.Cells(3, 2), .Cells(10, 3)).Copy Worksheets("sheet2").Range("E5")
 End With
End Sub
'-----------

今回の件は重要事柄ですので覚えておきましょう。
以上です。
 

>testcopyは動きますが、testcopy2は動きません

testcopyは「動作したり、しなかったりする」が正しい表現です。
  要するに今回testcopyが動いたのは▼たまたま▼ということです。

testcopy2 は当然ながらエラーになります。
何れにしろ、両方ともに問題があるということです。
その問題点は2つあります。

(1)アクティブでないシートのセルはSelect(Activate)できない
(2)複数のシートを扱うときのセルの参照は
   そのセルがどのシートのセルなのか明示する必要がある


これを踏まえて、、、、
-...続きを読む

Qエクセルで作成したマクロが他のシートに反映しない

必要に迫られ始めてマクロをエクセル上で作成してみました。(初心者)
そのマクロを違うエクセルファイル上でも反映させたいのですが
マクロを作ったおおもと(最初)のファイルを閉じてしまうと違うエクセルファイルを開いてもマクロが反映されていません。
マクロでの命令内容としては 
エクセル上の数字の羅列→グラフ作成→上書き保存 という手順で作りました。
他のエクセルファイルも同じように数字の羅列があります。それを同じ作業(グラフ作成→上書き保存)したいのです。
一度作ったマクロを他のエクセルファイルにも反映させるにはどうしたら良いのでしょうか?
説明がわかりにくくてすみません。
よろしくお願いします。

Aベストアンサー

マクロの記録先を「個人用マクロブック」にするのが良いと思います。
一回マクロの記録を行い「保存先」を「個人用マクロブック」にします。するとPERSONAL.XLSという特別なブックが作成されます。

このブックの標準モジュールシートに先に作ったマクロを貼り付けてください。

そうすればエクセルを開くと、どのブックでもマクロが実行可能になります

QExcelのマクロでファイルを開くのダイアログをキャンセルしたときの挙

Excelのマクロでファイルを開くのダイアログをキャンセルしたときの挙動についてです。

マクロで次のような記述をしています。


Sub tekitou()
Dim vntFileName As Variant
vntFileName = _
Application.GetOpenFilename( _
FileFilter:="エクセルファイル(*.xls),*.xls" & _
",CSVファイル(*.csv),*.csv" _
, FilterIndex:=1 _
, Title:="ファイルを開く" _
, MultiSelect:=False _
)
If vntFileName <> "False" Then
Workbooks.Open Filename:=vntFileName
End If
うんたらかんたら
End Sub



このとき、ファイルを開くのダイアログをキャンセルしたときでも「うんたらかんたら」の部分が実行されてしまいます。
キャンセルを押したときにそこでそれ以降をスキップして何もなかったかのような挙動をさせるためにはどのような記述をすればいいのでしょうか?

Excelのマクロでファイルを開くのダイアログをキャンセルしたときの挙動についてです。

マクロで次のような記述をしています。


Sub tekitou()
Dim vntFileName As Variant
vntFileName = _
Application.GetOpenFilename( _
FileFilter:="エクセルファイル(*.xls),*.xls" & _
",CSVファイル(*.csv),*.csv" _
, FilterIndex:=1 _
, Title:="ファイルを開く" _
, MultiSelect:=False _
)
If vntFileName <> ...続きを読む

Aベストアンサー

こういう場合、きちんと書いてあげたほうがよいですね。
ご自身のコードと見比べてください。ワザとベストの書法ではない方法で書きました。

Sub MyFileOpenPro()
 Dim FName As Variant
 FName = Application.GetOpenFilename("Excelファイル(*.xls),*.xls, " & _
 "CSVファイル(*.csv),*.csv", 1, "ファイルを開く", False)
 If VarType(FName) = vbBoolean Then Exit Sub 'マクロ離脱←本来はコメントは不要
 'ファイルオープン '←ここにコメントを入れる
 Workbooks.Open FName
 MsgBox FName 'うんたらかんたらの部分
End Su

以下は、つまらないことを言っていると思ってもよいですが、実務上のアドバイスで、もし、以下の中でどこかに引っかかることがあったら幸いです。

FileName を、Variant 型にするのはでよいです。明示的にわかる変数は、方針(ハンガリアン記表)が変わって、あまりプレフィックスは拘らなくてよいです。特に、VB.Net で、int と long の分岐点が変ったからです。

Variant 型にしたら、Cancel を押せば、当然、データ型は、Boolean 型になりますから、大文字・小文字を考えなくても、VarType や False で、除外項目が作れます。文字型でもよいのですが、Variant 型のほうが上です。

Fname に変えた理由は、別に意味ありません。本来は、こういう省略型は良くないのですが、VBAでは、伝統的になぜかこういう書き方もあるようです。とかくVBA(のみ)では長い変数名は、嫌われます。スクリプト型言語の名残りを残しているのかもしれません。

今回は、そのままでもよいのですが、本格的に、自分だけのコードを書く場合は、見せるコードは無視してよいです。とかく、掲示板では、可読性がどうとかという人がいますが、どうせ、この程度で読めなくなるようなレベルなら、どう書いた所で同じです。本格的に書くときは、なるべく短縮させてしまってください。その代わり、コメントを上手に入れます。ただし、vbBoolean などの、組込み定数までは、勤めて省略はしないでください。

こういう場合、きちんと書いてあげたほうがよいですね。
ご自身のコードと見比べてください。ワザとベストの書法ではない方法で書きました。

Sub MyFileOpenPro()
 Dim FName As Variant
 FName = Application.GetOpenFilename("Excelファイル(*.xls),*.xls, " & _
 "CSVファイル(*.csv),*.csv", 1, "ファイルを開く", False)
 If VarType(FName) = vbBoolean Then Exit Sub 'マクロ離脱←本来はコメントは不要
 'ファイルオープン '←ここにコメントを入れる
 Workbooks.Open FName
 MsgBox FName 'うん...続きを読む


人気Q&Aランキング

おすすめ情報