end-u の回答履歴

全1157件中161~180件表示
  • Excel VBAに付いて質問します。

    VBAを使いまして、決まった範囲以内のセルの中に色を付けたいと考えています。 決まった範囲内とは、セルの横に14マス縦に6マスの合計84個のマスのセルがあります。 セルM2を個数の入力セルに20と数字を入力すると14×6マスの右上から左に向かって20個のセルに色を付けます。 この時、横のセルの数が14マスなので、その下の列から右から左に向かって6マスを色を付くようにします。 そうすると合計20個のセルが色が付くようにしたいのです。 もちろん、例えば、30と入力したら30個のセルを右上から左に向かって30個のセルの中が色が付くようにしたいと考えています。この様なVBAを作りたいと考えています。 この動作をコマンドボタンで動作できる様に教えて下さい。 初心者の為、説明が不足している部分もありますが、よろしくお願いします。

  • Excel VBAに付いて質問します。

    VBAを使いまして、決まった範囲以内のセルの中に色を付けたいと考えています。 決まった範囲内とは、セルの横に14マス縦に6マスの合計84個のマスのセルがあります。 セルM2を個数の入力セルに20と数字を入力すると14×6マスの右上から左に向かって20個のセルに色を付けます。 この時、横のセルの数が14マスなので、その下の列から右から左に向かって6マスを色を付くようにします。 そうすると合計20個のセルが色が付くようにしたいのです。 もちろん、例えば、30と入力したら30個のセルを右上から左に向かって30個のセルの中が色が付くようにしたいと考えています。この様なVBAを作りたいと考えています。 この動作をコマンドボタンで動作できる様に教えて下さい。 初心者の為、説明が不足している部分もありますが、よろしくお願いします。

  • Excel VBAで入力規則リストに記述できる関数

    入力規則のリストで、ユーザー定義関数を使ったリストにしたいのですが、どうやれば良いのでしょうか? 使い方としては、レジストリの内容をユーザー定義関数経由でリストで選択させるようなことをやりたいと思っています。 入力規則の設定で「元の値」に、ユーザー定義関数を記述してもうまくいきませんでした。 多分、関数の戻り値が悪いのだろうと思うのですが、どのような戻り値にすれば良いか、お教えください

  • Excel97と2003

    Excel97を今使ったらさすがに古くて使えないですか? 具体的に2003と97は何が違うのですか。

  • セル内の行数で行の高さを変更

    セルA1を調べてその行の高さを変更するように下記のとおり 記述したのですが、これを複数行(例えば1~10行)繰り返すようにする(調べるセルは各行のA列)にはどのように記述すればよいでしょうか? ご教示どうぞよろしくお願いします。 Sub 行高変更() Dim TextA As Variant TextA = Range("A1").Text TextA = Split(TextA, vbLf, , vbBinaryCompare) RowA = UBound(TextA) + 1 If RowA = 1 Then Rows(1).RowHeight = 20 ElseIf RowA = 2 Then Rows(1).RowHeight = 30 ElseIf RowA = 3 Then Rows(1).RowHeight = 40 ElseIf RowA = 4 Then Rows(1).RowHeight = 50 ElseIf RowA = 5 Then Rows(1).RowHeight = 60 End If End Sub

  • 【Excel97及び2000】マクロの自動記録

    マクロの自動記録をしたのですが、自動記録をしたファイルを開いた時にしかそのマクロが出てきません。 <操作過程>  1.A.xlsというファイルを開いた状態で自動記録(PERSONAL.xlsも再表示しておいた)  2.すべて保存  3.B.xlsというファイルを開いてマクロボタンをクリックしても出てこない  4.A.xlsを開いてマクロボタンをクリックするとそのマクロは出てくる しかも、そのマクロを削除しようとしても削除ボタンが使用できず、ステップインボタンをクリックすると「このプロジェクトのマクロは無効に設定されています。マクロを有効にする方法についてはオンライン ヘルプまたはホスト アプリケーションのドキュメントを参照してください。」というコマンドが出てしまいます。ヘルプを見てもさっぱり分かりません。 PC更新前(Excel97)では普通に自動記録できたのですが、更新後は97でも2000でもこういう状態になってしまいました。 どうしたら以前のようにマクロの自動記録ができるのでしょうか? 昔作ったマクロはどのファイルを開いても出てきますし、以前のように削除もできますし編集画面も出ます。

  • オプションボタンとリストボックスの連動

    下記コードを作りましたが、全く反応がありません。 どこが悪いのか、指摘いただけませんでしょうか? よろしくお願いします。 ・オプションボタン1を選択=リストシートのB列をリストボックスへ表示 ・オプションボタン2を選択=リストシートのC列をリストボックスへ表示 ・リストボックスから一項目を選択、値を入力シートへ入力 Private Sub UserForm2_Initialize() If OptionButton1.Value = True Then With UserForm2 .ListBox1.RowSource = "リスト!B3:B" & lastRow End With End If If OptionButton2.Value = True Then With UserForm2 .ListBox1.RowSource = "リスト!C3:C" & lastRow End With End If End Sub Private Sub ListBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, _ ByVal X As Single, ByVal Y As Single) Worksheets("入力!").ActiveCell.Value = ListBox1.Value End Sub 以上

  • セル内の行数で行の高さを変更

    セルA1を調べてその行の高さを変更するように下記のとおり 記述したのですが、これを複数行(例えば1~10行)繰り返すようにする(調べるセルは各行のA列)にはどのように記述すればよいでしょうか? ご教示どうぞよろしくお願いします。 Sub 行高変更() Dim TextA As Variant TextA = Range("A1").Text TextA = Split(TextA, vbLf, , vbBinaryCompare) RowA = UBound(TextA) + 1 If RowA = 1 Then Rows(1).RowHeight = 20 ElseIf RowA = 2 Then Rows(1).RowHeight = 30 ElseIf RowA = 3 Then Rows(1).RowHeight = 40 ElseIf RowA = 4 Then Rows(1).RowHeight = 50 ElseIf RowA = 5 Then Rows(1).RowHeight = 60 End If End Sub

  • Excelのピボットグラフの線描画でエラー

    初めて質問させていただきます。 現在Excel2010でピボットグラフを描画しています。 (ただし、利用ユーザーがExcel2010ではないため、保存形式をExcel97-2003形式で保存) 描画したグラフに対し、VBAで次のように編集を行っています。 Dim objSrs As Series With ActiveChart  For Each objSrs In .SeriesCollection   'データ要素をループ   For i = 1 To objSrs.Points.Count    With objSrs.Points(i)     .MarkerStyle = xlMarkerStyleDiamond '※実際はSelect Caseの条件で設定     .MarkerForegroundColorIndex = 29 '※実際はSelect Caseの条件で設定     'マーカーの色を変更     .MarkerBackgroundColorIndex = .MarkerForegroundColorIndex     'マーカーの線幅を設定     .Format.Line.Weight = 1.5    End With   Next i  Next objSrs End With 作成した自分の端末(Excel2010)では問題ないのですが、Excel2007が入った端末では、  .Format.Line.Weight = 1.5 の所で次のようなエラーになってしまいます。  実行時エラー '-2147417848(80010108)'  'Weight' メソッドは失敗しました:'LineFormat'オブジクト ウォッチで中を確認してみると、objSrs.Formatには値があるのですが objSrs.Format.Lineには、<アプリケーション定義またはオブジェクト定義のエラーです。> となっています。 線の幅だけではなく、 .Format.Line.ForeColor.RGB = RGB(253, 153, 153) でもエラーになります。 .Format.Lineはバージョンで、記述方法に違いがあるのでしょうか?

  • タスクバーのアプリ開閉を回避したいです。

    30件程度のエクセル「個別ファイル」を集計するマクロについてです。 下記のコードを実行すると、VBAが記述されているエクセルの他に タスクバーで「個別ファイル」のエクセルが開閉してしまい、画面がちらちらしてしまいます。 ExecuteExcel4Macroを試し、かなり苦戦したのですが処理が遅かったです。 個別ファイルのウィンドウだけを開閉し、処理の最後にエクセルアプリを閉じる方法など ありませんでしょうか? 他の方法でも構いませんので、みなさまよろしくご回答願います。 WindowsXPとExcel2007を使用しております。 Application.ScreenUpdating = False Application.EnableEvents = False Set 個別ファイル = Workbooks.Open(Filename:=LocalFileName, ReadOnly:=True) '集計マクロ 個別ファイル.Close SaveChanges:=False Application.EnableEvents = True Application.ScreenUpdating = True

  • タスクバーのアプリ開閉を回避したいです。

    30件程度のエクセル「個別ファイル」を集計するマクロについてです。 下記のコードを実行すると、VBAが記述されているエクセルの他に タスクバーで「個別ファイル」のエクセルが開閉してしまい、画面がちらちらしてしまいます。 ExecuteExcel4Macroを試し、かなり苦戦したのですが処理が遅かったです。 個別ファイルのウィンドウだけを開閉し、処理の最後にエクセルアプリを閉じる方法など ありませんでしょうか? 他の方法でも構いませんので、みなさまよろしくご回答願います。 WindowsXPとExcel2007を使用しております。 Application.ScreenUpdating = False Application.EnableEvents = False Set 個別ファイル = Workbooks.Open(Filename:=LocalFileName, ReadOnly:=True) '集計マクロ 個別ファイル.Close SaveChanges:=False Application.EnableEvents = True Application.ScreenUpdating = True

  • Excel2003でアドインの更新ができない

    お世話になります。 環境は、WindowsXp Sp3 + Excel2003 Sp3 です。 VBAでプログラムを作成し"sss.xla"で保存します。 この"sss.xla"を"C:\Documents and Settings\<USER>\Application Data\Microsoft\AddIns"へ入れます。 Excelを起動しツール→アドインを開くと作成したアドインが表示されているのでチェックします。 また、チェックをはずすとアドインが無効になります。 アドイン(マクロ)の起動には「CTRL+SHIFT+J」を関数(サブルーチン)「sss」へ割り当てています。 ここまでは問題なく動作しています。 "sss.xla"を修正します(たとえば、足し算していたものが間違っていて掛け算に修正する等です)。 この修正した"sss.xla"を上記のフォルダーへ上書きコピーします。 Excelを起動してアドインを動かしてみると修正前のものが動いてしまいます。 (セルに色をつけたりもしていますので明らかに修正前のものが動いています。) インターネットでいろいろ探してみたところ、 「"C:\Program Files\Microsoft Office\OFFICE11\Library"へ"sss.xla"を入れると大丈夫」 との情報があったので試してみましたがだめでした。 アドインを無効にし"・・・\AddIns"から削除して"・・・\Library"へ入れています。 "sss.xla"本体とは別にどこかにキャッシュされたりしているのかとも思い、Cドライブを"sss.xla"で全検索したり、レジストリーを検索したりしましたがそれらしいものは見つかりませんでした。 (ファイルそのものは削除しているので、どこかにキャッシュされているのだろうと思いました。) さらに修正した"sss.xla"を"sss101.xla"としてアドイン登録しても動くのは"sss.xla"が動いてしまいます。 どうすれば修正した"sss.xla"を動かすことができるようになるでしょうか。 よろしくお願いします。

  • excelVBA CSVの読み込み処理について

    excel2000を使用しております。 約10万行のcsvファイルを2万行づつシートを分けて読み込んで行きたいですが 可能でしょうか?  (1) テキストインポートダイアログを開いてcsvファイルを指定。  (2) 2万行づつシートに順次入力を行う。 お手数ですがご教授お願い致します。

  • Excelのセルに HTML を貼りつけたい

    初めて質問いたします。 Excel2010で、セルにHTMLコードを代入して、HTMLのスタイルが付けられた文字にしたいと思っています。 スタイルはfont color =redと極めてシンプルですが、使用される可能性のある文字が少々特殊で、ヨーロッパ言語やロシア語、アラビア語などどんな文字がくるかわかりません。それでバイナリ扱いにしています。読み込まれるHTMLのエンコードはUTF-16(Unicode)です。 ヨーロッパ語はVBA に直接書くとアクサン/ウムラウトが化けてしまうため、以下のスクリプトではC:\test.html から読み込む形式にしました。HTML スタイルを有効にするために、クリップボードに強引にHTMLコードを書き込み、それを貼りつけています。 ●以下は該当箇所を抜粋してそのままテスト可能にしたものです。 Sub test() Dim CB As New DataObject Dim S Set S = CreateObject("ADODB.Stream") S.Open S.LoadFromFile "C:\test.html" S.Position = 0 S.Type = 1 S.Position = 2 ReDim Report(0) As Byte Report = S.Read() Debug.Print Report CB.SetText Report CB.PutInClipboard Cells(1, 1).PasteSpecial (xlPasteAll) End Sub ●test.html の中身は以下です。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=unicode"> <font color="red">kopp</font>int<font color="red">ás</font> </body></html> このコードは動きますが、残念ながらセルに貼り付けられるとアクサン・ウムラウトが落ちてしまいます。 元はkoppintásなのですが、貼り付けるとkoppintasとáが普通のaになってしまいます。 文字コード変化や文字化けはPasteSpecialの寸前まで起きていないことは確認済みですので、このアクサン落ちは明らかに PasteSpecial で起きています。 なお、test.htmlのブラウザ表示をそのままセルに貼り付けた場合は、もちろんアクサンは落ちません。上のスクリプトでは、コピー操作で得た情報ではなく、クリップボードに無理やり書き込んだ情報なので、何か必要な情報が不足しているのではないかと推測しています。 さらに、日本語/ロシア語/ギリシャ語をこのスクリプトで貼り付けた場合、Cells(1, 1).PasteSpecial (xlPasteAll)のところでエラーになってしまい貼りつけられません。アラビア語にいたっては全文字化けてしまいます。 いろいろ試してみて、今のところ PasteSpecial で xlPasteAll を指定した場合のみHTMLコードを何とかスタイル付きでセルに貼り付けられたので (なぜか他の xlPaste はどれもエラーになる) 、仕方なくこれにしてみようかと思っていたのですが、上記のアクサン落ちとキリル文字などでのエラーで困っています。 クリップボードを使わず、素直にHTMLをセルに代入し、HTMLを解釈してもらってスタイルを付けられれば一番よいのですが、何か方法はありますでしょうか。 具体的なコードでなくても、「これを使えばよい」だけでも結構です。 よろしくお願いします。

  • Excelのセルに HTML を貼りつけたい

    初めて質問いたします。 Excel2010で、セルにHTMLコードを代入して、HTMLのスタイルが付けられた文字にしたいと思っています。 スタイルはfont color =redと極めてシンプルですが、使用される可能性のある文字が少々特殊で、ヨーロッパ言語やロシア語、アラビア語などどんな文字がくるかわかりません。それでバイナリ扱いにしています。読み込まれるHTMLのエンコードはUTF-16(Unicode)です。 ヨーロッパ語はVBA に直接書くとアクサン/ウムラウトが化けてしまうため、以下のスクリプトではC:\test.html から読み込む形式にしました。HTML スタイルを有効にするために、クリップボードに強引にHTMLコードを書き込み、それを貼りつけています。 ●以下は該当箇所を抜粋してそのままテスト可能にしたものです。 Sub test() Dim CB As New DataObject Dim S Set S = CreateObject("ADODB.Stream") S.Open S.LoadFromFile "C:\test.html" S.Position = 0 S.Type = 1 S.Position = 2 ReDim Report(0) As Byte Report = S.Read() Debug.Print Report CB.SetText Report CB.PutInClipboard Cells(1, 1).PasteSpecial (xlPasteAll) End Sub ●test.html の中身は以下です。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=unicode"> <font color="red">kopp</font>int<font color="red">ás</font> </body></html> このコードは動きますが、残念ながらセルに貼り付けられるとアクサン・ウムラウトが落ちてしまいます。 元はkoppintásなのですが、貼り付けるとkoppintasとáが普通のaになってしまいます。 文字コード変化や文字化けはPasteSpecialの寸前まで起きていないことは確認済みですので、このアクサン落ちは明らかに PasteSpecial で起きています。 なお、test.htmlのブラウザ表示をそのままセルに貼り付けた場合は、もちろんアクサンは落ちません。上のスクリプトでは、コピー操作で得た情報ではなく、クリップボードに無理やり書き込んだ情報なので、何か必要な情報が不足しているのではないかと推測しています。 さらに、日本語/ロシア語/ギリシャ語をこのスクリプトで貼り付けた場合、Cells(1, 1).PasteSpecial (xlPasteAll)のところでエラーになってしまい貼りつけられません。アラビア語にいたっては全文字化けてしまいます。 いろいろ試してみて、今のところ PasteSpecial で xlPasteAll を指定した場合のみHTMLコードを何とかスタイル付きでセルに貼り付けられたので (なぜか他の xlPaste はどれもエラーになる) 、仕方なくこれにしてみようかと思っていたのですが、上記のアクサン落ちとキリル文字などでのエラーで困っています。 クリップボードを使わず、素直にHTMLをセルに代入し、HTMLを解釈してもらってスタイルを付けられれば一番よいのですが、何か方法はありますでしょうか。 具体的なコードでなくても、「これを使えばよい」だけでも結構です。 よろしくお願いします。

  • 印刷プレビュー画面を印刷するショートカットキー

    エクセル・ワードの2007では、ctrl + F2のショートカットキーで印刷プレビュー画面を表示させることができますが、そこから印刷を実行するには、マウスでプレビュー画面の中の印刷ボタンを押すしかないのでしょうか?(まあ、ctrl + w でプレビュー画面を閉じて、ctrl + Pで印刷する方法もありますがそれも面倒ですよね) 印刷プレビュー画面から、ショートカットキーでそのまま印刷する方法はありますか? わかる方がいましたが、お願いします。

  • VBAでの[]

    Excel VBAのプログラム上で SNDsrcNoC = [N_SrtNO].Column のように、[]で囲まれている箇所があるのですが、どんな意味なのかわからないでおります。 []の前に何もないので、配列の添え字や関数の引数でもなさそうです。 ご存知の方どうか教えてください。 VBA [] とかでグーグル検索してもうまいのがでてきません。

  • vbscriptでエクセルを操作する

    エクセルのファイルを開いて、タスクバーに最小化してあります。 これをvbscriptからデスクトップに再表示するにはどうすればいいのでしょうか。 Application.WindowState=xlNomal などは使えないようなのですが。 よろしくお願いします。

  • VBAからのHYPERLINK関数のアドレス取得法

    いつもお世話になっています。Excel 2003のVBAについてご質問させてください。 あるセル上に、下記のように別名が指定されたHYPERLINK関数があります。 =HYPERLINK(配置先, ファイル名) 現在、VBAよりHYPERLINK関数が指し示す配置先(アドレス)を取得しようと思っています。 これを取得するにはどうすれば良いでしょうか? なお、以下のような付加条件があります。かなりワガママだとは自覚していますが、 なにとぞお知恵をお貸しください。 (1)「配置先」には、実際には複雑な分岐等があり、これを生成するロジックのVBA化は困難 (2)「配置先」だけ別セルに書き出すことは出来なくはないが、今回は避けたい (3)Excel 2010でも動作する必要がある。 (3)についてはこちらで動作確認致しますので、Excel 2003での情報をお願いします。

  • エクセルVBAでブックを開くと処理が終わってしまう

    VBA初心者なのですが、VBAでエクセルブックを開くとVBAの処理が終わってしまいます。理由がわからないのでアドバイスをお願いします。なお、止まってしまう箇所にコメントを入れプログラムを下記しました。また、4000字以上質問できないためプログラムの途中までしか書かれていません。そのため、余分な宣言が多数ありますが無視してください。よろしくお願いいたします。 Option Base 1 Sub 健康診断の郵送() Dim kyoNum() As String Dim b_name As String Dim a_name() As Variant Dim b_address As String Dim a_address() As Variant Dim mailNum() As Variant Dim place() As String Dim banchi() As String Dim ken() As String Dim Adr As String Dim AdrLen As Integer Dim i, j, k, cnt, l, m As Integer Dim ChrCode As Integer Dim cell As Range Dim Book1 As String Dim wb As Workbook Dim Book1_Path As String Dim flag As Boolean 'セルのクリア ThisWorkbook.ActiveSheet.Cells.ClearComments 'セルのプロパティを設定をする With ThisWorkbook.ActiveSheet.Columns("A:B") .ShrinkToFit = True .NumberFormatLocal = "@" .ColumnWidth = 45 End With 'カレントディレクトリのチェンジ(Windows2000以降) CreateObject("WScript.Shell").CurrentDirectory = ThisWorkbook.Path '簡易名称Book1にする Book1 = "Book1.xlsx" 'パスを取得する Book1_Path = ThisWorkbook.Path & "\" & Book1 If Dir(Book1_Path) = "" Then MsgBox "Book1.xlsxファイルが存在しません。", vbExclamation End If '同名ブックのチェック For Each wb In Workbooks If wb.Name = Book1 Then MsgBox "健康診断の郵送.xlsmはBook1を開こうとしています" _ & vbCrLf & "Book1を閉じて再実行してください", vbExclamation Exit Sub End If Next wb Application.ScreenUpdating = False '画面の更新を止める Workbooks.Open Book1_Path '*****←ここで処理が終わってしまう***** 'ブック名を指定して非表示 Application.Windows("Book1.xlsx").Visible = False '後方検索でBook1.xlsxの入力済みセルの行数と列数を取得 With Workbooks("Book1.xlsx").ActiveSheet.UsedRange Book1_MaxRow = .Find("*", , xlValues, , xlByRows, xlPrevious).Row - 2 'データ入力済み行数取得 End With Application.ScreenUpdating = True Workbooks("Book1.xlsx").Activate j = 1 ReDim kyoNum(Book1_MaxRow) ReDim a_name(Book1_MaxRow) ReDim a_address(Book1_MaxRow) ReDim mailNum(Book1_MaxRow) ReDim ken(Book1_MaxRow) ReDim place(Book1_MaxRow) ReDim banchi(Book1_MaxRow)