jcctaira の回答履歴

全261件中201~220件表示
  • エクセルVBAで質問です。

    エクセルVBAで質問です。 A列   B列 AAAA  1111 BBBB  2222 CCCC  3333 とあります。 上記を AAAA (空白) (空白) 1111 (空白) BBBB (空白) (空白) 2222 (空白) CCCC (空白) (空白) 3333 (空白) A列にB列を挿入し、2・3・5行目に空白のセルを入れていきたいのです。 9000行ぐらいあります。 他の列に A列、B列のものを取得していく形でも構いません。 とにかく、縦1列に並べたいです。 どなたか、ご教授お願い致します。

  • ExcelのVBAでの複数階層からのフォルダ名の取得

    ExcelのVBAでの複数階層からのフォルダ名の取得 下記階層に対して以下の処理をExcelのVBAで行うにはどしたら良いか、 申し訳ありませんが、どうか教えて頂きたく思います。 C:\test1   ├\aaa\ddd   │   ├\xxx1\   │   └\yyy2\   │   ├\bbb\ddd   │   └\xxx3\   │   │   └\ccc\ddd       ├\xxx4\       ├\xxx5\       └\zzz6\ 1 C:\test1を指定する 2 1で指定した中にある各\dddフォルダ内にあるフォルダ名を順に取得する 3 2で取得したフォルダ名をExcelのSheet1のA1から順に書き出す Excel   A    B    C    D    E 1 xxx1 2 yyy2 3 xxx3 4 xxx4 5 xxx5 6 zzz6 7 8 9  Sheet1 Sheet2 Sheet3 勉強不足で申し訳ありません。 どうぞ宜しくお願い致します。

  • VBA初心者です。下記のコードを書いてうまくいきました。が、これは一行

    VBA初心者です。下記のコードを書いてうまくいきました。が、これは一行分の処理で、実際にはこの動作を60行とかに同時に適用したいと考えているのですが、どう書けばいいのか解りません。ご教示のほどよろしくお願いします。 Private Sub Worksheet_Change(ByVal Target As Range) If Range("CH41") < Range("CC41") Then Range("CC41").Copy Range("CH41").Select Selection.PasteSpecial Paste:=xlPasteValues End If End Sub

  • エクセルのデータ整理をマクロを用いて行おうと思っているのですが、素人で

    エクセルのデータ整理をマクロを用いて行おうと思っているのですが、素人でなかなか前に進みません。 sheet1にあるデータの合計をsheet2の任意のセルに書き込ませたいと考えています。 Sheet1のA1~A4の合計をSheet2のA1に、Sheet1のA5~A8の合計をSheet2のA2に、、、という具合に合計するデータのセル範囲が移動していくような処理をしたいと考えています。 参考になるページやポイントなどがあれば教えていただけますでしょうか。 よろしくお願いします。 Sheet1    Sheet2   A B...    A 1  2      合計(1) 2  2      合計(2) 3  2      ・ 4  2      ・ 5  4      ・ 6  4 7  4 8  4 ・ ・ ・ ・ ・ ・

  • エクセル2003でのマクロで質問です。

    エクセル2003でのマクロで質問です。 セル(2,22)には"1"という値が入っています。 セル(2,13)には"20100521"という値が入っています。 セル(3,13)には"20100521"という値が入っています。 セル(4.13)には"20100525"という値が入っています。 セル(5,13)には"20100525"という値が入っています。 このようなときに セル(3,22)の値は"1" セル(4,22)の値は"2" セル(5,22)の値は"2" となるように以下のようなマクロを作成しました。 Dim i As Integer, j As Integer, date1 As String i = 2 j = 3 Do While Cells(i, 1).Value <> "" If Cells(i, 13) = Cells(j, 13) Then Cells(j, 22) = Cells(i, 22) Else Cells(j, 22) = Cells(i, 22) + 1 End If i = i + 1 j = j + 1 Loop しかし、結果は セル(3,22)の値は"2" セル(4,22)の値は"3" セル(5,22)の値は"4" となってしまいます。 どこに原因があるのかわかりません。 助けてください。 宜しくお願いします。

  • 自動連番号について

    自動連番号について いつもお世話になります。 Windows XP EXCELL2003 です。 タイトルバーの各セルの色づけの意味は A B C D バックが黄色は数式入りでロックがかかっています。 E F G H その都度手入力です。 当然ロックはかかっていません。 A列は自動で連番をしています。 B列は「重複」表示をしている以外は値がない空白です。 A B C Dの各列には数式及び条件付書式が以下のようにあります A2 =IF(E2="","",COUNTA($E$2:E2)) B2 =IF(OR(COUNTIF($F$2:F2,F2)>1,COUNTIF($K$2:K2,K2)>1),"重複","") 条件付書式  値に等しい =”重複” C2 =MID(I2,1,1) D2 =MID(F2,1,1)&MID(F2,2,1) I2  =PHONETIC(G2) 以上です。 ここでご相談若しくはご指導を仰ぎたいのは B列に 「重複」とされた所は連番を飛ばしたいのですが何かいい方はないでしょうか。 例えは A2 0001 A3 A4 0002 A5 0003 という具合になれば良いのですが。 よろしく御願いします。

  • Excel VBA でA列の中に、1か10以外の数字があった場合にB1

    Excel VBA でA列の中に、1か10以外の数字があった場合にB1のセルに×と表示させるにはどうすればよろしいでしょうか?よろしくおねがいします。

  • EXCELデータ保存時にメッセージを表示させたい。

    EXCELデータ保存時にメッセージを表示させたい。 EXCELデータを部門横断的に使用しようとしています。その際、ファイル名を統一した方式で保存をしてほしいとおもっています。例えば、「年度・部・3桁連番.xls」という統一方式を考えていて「2010・総務部・001.xls」といった形です。 そこでファイルを保存する際に、画面上に「ファイルを保存するときは年度・部・連番という形式で保存してください」というメッセージを表示させたい、と思っています。 VBAを組むようでしょうか。 よろしくお願いいたします。

  • データが存在しない部分を先着2つ集めたい

    データが存在しない部分を先着2つ集めたい VBA初心者です。まだVBAがどういうものなのか、どうやって動かすかもよくわかっていないので難しい知識はないのですが、職場でマクロ作成を依頼され、右も左もわからず質問させて頂いた次第です。どうかよろしくお願いいたします。 作りたいマクロは、「6×6の表にデータがあり、各行ごとに"データがないセル"を左から2つまで取得してその名前を別の列に縦に記載する」というものです。(添付ファイル参照) データがない(空欄の)セルを一番左から順番に2つ取得したいんです。 もし空欄セルが1つしかない場合はその1つだけを書きます。 1つのシートの中にこういう表がいくつかある状態で、また表によっては6×7であったり7×5になったり、サイズは変動するようです。 なので基本の形さえわかれば後は細かいところを変えて全てに使えると思うのですが・・・どうも組み方がわからず、といった状態です。あれこれ検索で調べてみたのですが目的とするものが見つかりませんでした。 初心者丸出しな質問で大変恐縮ですが、何卒よろしくお願いします!

  • 『実行時エラー'1001': 'Range'メソッドは失敗しました:'

    『実行時エラー'1001': 'Range'メソッドは失敗しました:'_Worksheet'オブジェクト』 先週から仕事に必要なためVBAの勉強を始めましたが、別シートへコピーする際などに上記のエラーが発生してしまい原因が分からず困っています。どこが間違っているのでしょうか?? 処理はデータが書かれているシートから作業用のシートにセル範囲を指定してコピーする、というものです。 なお、マクロ自体は別にマクロ用ファイルを作成し、そこのシートモジュールへ記述しています。 よろしくお願いします。 Sub test() '--------- 対象ファイルの呼び出し Dim MAIN As Workbook Dim ws As Worksheet Dim sh As String 'ファイルを呼び出す Call GetMAINFile Set MAIN = ActiveWorkbook Set ws = MAIN.Worksheets(1) sh = ws.Name '--------- 一時作業用TEMPシートの作成 Dim TEMP As Worksheet Worksheets.Add(after:=ws).Name = "TEMP" Set TEMP = Worksheets("TEMP") '--------- 対象シートから一時作業用TEMPシートへデータのコピー Dim x1, x2, y1, y2 As Integer x1 = 5 x2 = 10 y1 = 1 y2 = 4 ws.Range(Cells(x1, y1), Cells(x2, y2)).Copy _ Destination:=TEMP.Range(Cells.SpecialCells(xlLastCell).Row, 1) End Sub '--------- ファイル名を指定ダイアログの表示 Sub GetMAINFile() Dim NewBook As Workbook Dim OpenFileName As String OpenFileName = Application.GetOpenFilename() If OpenFileName <> "False" Then Workbooks.Open OpenFileName Else Exit Sub End If End Sub

  • excel VBA 自動入力

    excel VBA 自動入力 こんにちは excelから現在バックグランドで開いているアプリケーションやWebブラウザのフォームなどに excelの値をVBAで入力するにはどのような指定の仕方をしたらよいでしょうか? 指定方法としては、"Alt+Tab"を1回押した時にアクティブになる部分、 つまり、作成予定のexcelファイルをアクティブにする直前にアクティブだった入力フォームへ 入力するという指定がしたいです。 どうかご教示お願いします。

  • エクセルVBAで結合セルの真ん中にチェックボックスを作成する方法を教え

    エクセルVBAで結合セルの真ん中にチェックボックスを作成する方法を教えて下さい。 数個下の質問で結合されたセルに一つだけチェックボックスを作る方法を質問した者です。 度々すみません。 今度の質問ですが、結合したセルの上下左右の真ん中にチェックボックスを作る方法を教えていただけないでしょうか? 現在のプログラムは下記のようになっております。 宜しくお願い致します。 Dim ss As Excel.Range, cbx As CheckBox With Selection.Parent For Each ss In Selection If (ss.MergeArea.Column = ss.Column) * (ss.MergeArea.Row = ss.Row) Then Set cbx = .CheckBoxes.Add(Left:=ss.Left, Top:=ss.Top, _ Height:=ss.Height, Width:=ss.Width) cbx.Text = "" RowCnt = Selection.Row        '選択されているセルの行をRowCnt変数で表現 cbx.LinkedCell = "A" & RowCnt    '選択されているセルのA列にチェックボックスを作成 cbx.Display3DShading = False     '3D表示なし With cbx.ShapeRange .Fill.Solid .Fill.Visible = msoFalse       '塗りつぶしなし .Line.Visible = False         '線on,off .Line.Weight = 0.25          '線幅 .Line.ForeColor.RGB = RGB(0, 0, 0)  '線色 End With End If Next End With

  • エクセルで、出来そうなのですが、教えてください。

    エクセルで、出来そうなのですが、教えてください。 初心者で、初めて質問します。 私の会社のパートさんや、アルバイトさんの勤怠表と給与明細を作ってるのですが、 下のような スタッフ一覧を作りそのデーダーをもとに各個人名のシートの各項目セルに  飛ぶように作ってみましたが、 知りたいのは A列の出勤の上がってる方だけ、1つの操作で、印刷したいのです。 A 列の出勤数は、各個人明細所の出勤数に連動してます。 E 列の名前と個人明細書のSheetにリンクさせてます。 田中太郎さんは、sheet1、田中花子さんは、sheet2に、なっているので、 A列が、0より多い時は、5番目の氏名のリンクを印刷する。 等 VLOOKUPやIFでやれないかと 考えましたが、 答えが出ません、マクロも自動登録しかできないので、困ってます。 スミマセンとても分かりずらいのですが・・・・A列出勤数 B列週払い(チェツクリスト) c列個人シートのデーターを読ますためのNO、D列 会社の個人コード、  E列 名字(シートへリンクさせてます。) F 名前・・・・G.H.・・・と他のデータがあります。 行は、 60行位です。    A.............B.....,,...,,..C............D...................E.............F...........G 1..........出勤数.......週払..........No..............コード............氏名..............勤務地 2...........20.............................1 ..............35982.......... 田中 太郎......... 日本会社 3...........1.............................2 ...............358055..........田中 花子.........日本会社 4............2.............................5...............39488........林 太郎.......... 日本会社..... リンク先を印刷するマクロは、こんな感じでよいのでしょうか? あと どのようにしてA列を検索してE列のリンク先を、印刷させるのかわかりません。 Range("E3").Select Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True ExecuteExcel4Macro "PRINT(1,1,2,,,TRUE,,FALSE)" End Sub 印刷だけクリアー出来れば、出来上がりにしようと思っていますが、 いろいろ ネットや本で探しても 基本の検索や質問の仕方が 分からないので お手上げ 状態です。 力を貸してください。  お願いします。

  • エクセルで、出来そうなのですが、教えてください。

    エクセルで、出来そうなのですが、教えてください。 初心者で、初めて質問します。 私の会社のパートさんや、アルバイトさんの勤怠表と給与明細を作ってるのですが、 下のような スタッフ一覧を作りそのデーダーをもとに各個人名のシートの各項目セルに  飛ぶように作ってみましたが、 知りたいのは A列の出勤の上がってる方だけ、1つの操作で、印刷したいのです。 A 列の出勤数は、各個人明細所の出勤数に連動してます。 E 列の名前と個人明細書のSheetにリンクさせてます。 田中太郎さんは、sheet1、田中花子さんは、sheet2に、なっているので、 A列が、0より多い時は、5番目の氏名のリンクを印刷する。 等 VLOOKUPやIFでやれないかと 考えましたが、 答えが出ません、マクロも自動登録しかできないので、困ってます。 スミマセンとても分かりずらいのですが・・・・A列出勤数 B列週払い(チェツクリスト) c列個人シートのデーターを読ますためのNO、D列 会社の個人コード、  E列 名字(シートへリンクさせてます。) F 名前・・・・G.H.・・・と他のデータがあります。 行は、 60行位です。    A.............B.....,,...,,..C............D...................E.............F...........G 1..........出勤数.......週払..........No..............コード............氏名..............勤務地 2...........20.............................1 ..............35982.......... 田中 太郎......... 日本会社 3...........1.............................2 ...............358055..........田中 花子.........日本会社 4............2.............................5...............39488........林 太郎.......... 日本会社..... リンク先を印刷するマクロは、こんな感じでよいのでしょうか? あと どのようにしてA列を検索してE列のリンク先を、印刷させるのかわかりません。 Range("E3").Select Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True ExecuteExcel4Macro "PRINT(1,1,2,,,TRUE,,FALSE)" End Sub 印刷だけクリアー出来れば、出来上がりにしようと思っていますが、 いろいろ ネットや本で探しても 基本の検索や質問の仕方が 分からないので お手上げ 状態です。 力を貸してください。  お願いします。

  • エクセルで、出来そうなのですが、教えてください。

    エクセルで、出来そうなのですが、教えてください。 初心者で、初めて質問します。 私の会社のパートさんや、アルバイトさんの勤怠表と給与明細を作ってるのですが、 下のような スタッフ一覧を作りそのデーダーをもとに各個人名のシートの各項目セルに  飛ぶように作ってみましたが、 知りたいのは A列の出勤の上がってる方だけ、1つの操作で、印刷したいのです。 A 列の出勤数は、各個人明細所の出勤数に連動してます。 E 列の名前と個人明細書のSheetにリンクさせてます。 田中太郎さんは、sheet1、田中花子さんは、sheet2に、なっているので、 A列が、0より多い時は、5番目の氏名のリンクを印刷する。 等 VLOOKUPやIFでやれないかと 考えましたが、 答えが出ません、マクロも自動登録しかできないので、困ってます。 スミマセンとても分かりずらいのですが・・・・A列出勤数 B列週払い(チェツクリスト) c列個人シートのデーターを読ますためのNO、D列 会社の個人コード、  E列 名字(シートへリンクさせてます。) F 名前・・・・G.H.・・・と他のデータがあります。 行は、 60行位です。    A.............B.....,,...,,..C............D...................E.............F...........G 1..........出勤数.......週払..........No..............コード............氏名..............勤務地 2...........20.............................1 ..............35982.......... 田中 太郎......... 日本会社 3...........1.............................2 ...............358055..........田中 花子.........日本会社 4............2.............................5...............39488........林 太郎.......... 日本会社..... リンク先を印刷するマクロは、こんな感じでよいのでしょうか? あと どのようにしてA列を検索してE列のリンク先を、印刷させるのかわかりません。 Range("E3").Select Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True ExecuteExcel4Macro "PRINT(1,1,2,,,TRUE,,FALSE)" End Sub 印刷だけクリアー出来れば、出来上がりにしようと思っていますが、 いろいろ ネットや本で探しても 基本の検索や質問の仕方が 分からないので お手上げ 状態です。 力を貸してください。  お願いします。

  • EXCELデータ保存時にメッセージを表示させたい。

    EXCELデータ保存時にメッセージを表示させたい。 EXCELデータを部門横断的に使用しようとしています。その際、ファイル名を統一した方式で保存をしてほしいとおもっています。例えば、「年度・部・3桁連番.xls」という統一方式を考えていて「2010・総務部・001.xls」といった形です。 そこでファイルを保存する際に、画面上に「ファイルを保存するときは年度・部・連番という形式で保存してください」というメッセージを表示させたい、と思っています。 VBAを組むようでしょうか。 よろしくお願いいたします。

  • vistaでエクセル2007を使用しています。

    vistaでエクセル2007を使用しています。 久しぶりにVBAでプログラム作成をして、わけのわからない状況に遭遇したものですから、もしどなたか解説いただければと投稿しました。 Option Explicit Sub ボタン1_Click() Dim 文書全体 As String ' 文書全体読み込み ' Open Range("a1").Text For Input As #1 ' 文書全体 = Input(LOF(1), 1) ' Close #1 Open Range("a1").Text For Input As #1 Do Until EOF(1) 文書全体 = 文書全体 & Input(1, 1) Loop Close #1 英文のテキストファイルをまるまる1個の変数に読み込むだけのことなのですが、テストデータはリマークした方で問題なく動作しているにも関わらず、別のファイルを指定すると「実行時エラー62ファイルにこれ以上データがありません」で止まってしまいました。そしてその時のLOFの値とテキストファイルのプロパティで表示される値は同じでした。改めてDOで1バイトづつまわす方で試し、CLOSEで止めてイミディエイトで表示させると、 ? len(文書全体) ;lof(1) 11489 11493 となりました。これはどういうことなのでしょう。何か考え違いをしているのでしょうか?

  • VBAか関数 「 2と3の組合せ 」 の行が、いくつあるか?

    VBAか関数 「 2と3の組合せ 」 の行が、いくつあるか? Windows XP Home Edition SP3 Office XP Personal 2002 Excel 2002 画像の 「 C列 D列 E列 」 の 「 3列 」 だけを使った質問でございます。 数値は 2桁の整数 までしかありません。 6行目の「 C列 D列 E列 」以外で、オートフィルタをかけた後ですが、空白行もたまにございます。 オートフィルタをかけた後ですので、データのある最後行以下は全部空白です。   実際には、セルには色分けはされておりません。 ---質問のまとめ-------------------------------------- ● 「 2 と 3 の組合せ 」(画像の黄色セル) の行が、いくつあるか? を算出できる、関数 か マクロは、ありますでしょうか? 質問の例では、答えは 「 3行 」 となります。 存在しない場合には、「 0行 」 となります。 ----------------------------------------------------- また、 「 1 と 3 の組合せ 」 の行が、いくつあるか? 「 * と * の組合せ 」 の行が、いくつあるか? などのように、いろいろと算出できればと思っております。 非常にややこしい質問で、恐れ入ります。 今までは、手作業で、6行目にオートフィルタをかけて行っておりました。 何卒、ご教示のほどをお願い致します。 

  • Excel VBAで文字列の日付を判定

    Excel VBAで文字列の日付を判定 文字列の書式で”19900101”などとセルに入力されている場合に実際に存在する日付かを判定する方法はありますでしょうか? たとえば、19990132などと入力されている場合はエラーにしたいのです。ISDATEを使うのかともおもいましたがうまくいきません。 よろしくお願いします。

  • 実行時エラー'1004': アプリケーション定義またはオブジェクト定義

    実行時エラー'1004': アプリケーション定義またはオブジェクト定義について Dim code As String Dim lastrow As Integer Dim i As Integer Sub calc() Dim code As String Dim day_s As Integer, month_s As Integer, year_s As Integer Dim day_e As Integer, month_e As Integer, year_e As Integer Dim row_length As Integer code = "998407.o" day_e = 31 month_e = 12 year_e = 2005 day_s = 1 month_ = 1 year_s = 2005 Range("B4:H65536").ClearContents For i = 0 To 365 * 0.65 Step 50 URL = "URL;http://table.yahoo.co.jp/t?s=" & code & "&a=" & month_s & "&b=" & day_s & "&c=" & year_s & "&d=" & month_e & "&e=" & day_e & "&f=" & year_e & "&g=d&q=t&y=" & i & "&z=" & code & "&x=.csv" If i = 0 Then lastrow = 4 Call GETデータ If Range("B4") = "" Then Exit Sub End If Else lastrow = Range("B4").End(xlDown).Row + 1 Call GETデータ Range("B" & lastrow, "H" & lastrow).Delete row_length = Range("B4").End(xlDown).Row If row_length - lastrow < 49 Then Exit For End If End If Next Range("B5:H65536").Sort key1:=Columns("B") lastrow = Range("B4").End(xlDown).Row Range("B5", "B" & lastrow).NumberFormatLocal = "yyyy/mm/dd" Range("A1").Select End Sub もうひとつ Sub GETデータ() With ActiveSheet.QueryTables.Add(Connection:=URL, Destination:=Cells(lastrow, 2)) ↑ここにデバックで黄色になります。 .Name = "t?s=998407.o&g=d" .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .BackgroundQuery = True .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .WebSelectionType = xlSpecifiedTables .WebFormatting = xlWebFormattingNone .WebTables = "10" .WebPreFormattedTextToColumns = True .WebConsecutiveDelimitersAsOne = True .WebSingleBlockTextImport = False .WebDisableDateRecognition = False .WebDisableRedirections = False .Refresh BackgroundQuery:=False End With End Subになります。Excel2007です。