saku&VBA初級教室

時短に生きよう。趣味をたのしめ

confyuiのコードを書く

confyuiのコードを書く

 

 

import cv2
from PIL import Image

class ControlNet:
    def __init__(self):
        # OpenPoseの初期化(ここでは具体的なコードは省略)
        pass

    def process_image(self, image_path):
        # OpenPoseを使用して画像からポーズを検出
        # 例: cv2.imreadで画像を読み込む
        image = cv2.imread(image_path)
        # OpenPoseによる処理(コードは省略)
        # 処理されたデータを返す
        return processed_data

class APAdapter:
    def __init__(self):
        pass

    def process_image(self, image_path):
        # Pillowを使用して画像を処理
        image = Image.open(image_path)
        # 画像処理(例: 画像のリサイズやフィルタ適用など)
        # 処理された画像を返す
        return processed_image

class JoinNode:
    def __init__(self, control_net, ap_adapter):
        self.control_net = control_net
        self.ap_adapter = ap_adapter

    def join(self, control_image_path, ap_image_path):
        # ControlNetとAPAdapterを使って画像を処理
        control_data = self.control_net.process_image(control_image_path)
        ap_data = self.ap_adapter.process_image(ap_image_path)
        # ここで両方のデータを結合または処理
        # 結果を返す
        return result

# 使用例
control_net = ControlNet()
ap_adapter = APAdapter()
join_node = JoinNode(control_net, ap_adapter)

# 画像の処理
control_image_path = 'path_to_control_image.jpg'
ap_image_path = 'path_to_ap_image.jpg'
result = join_node.join(control_image_path, ap_image_path)

ブック名、シート名、印刷枚数、印刷用紙を書き出すマクロ。

ブック名、シート名、印刷枚数、印刷用紙を書き出すマクロ。太字は適宜かいへんしてください。A4しか識別しないようになってます。

 

 

Sub CopySheetInfoToGETRIST()
    Dim ws As Worksheet
    Dim getristSheet As Worksheet
    Dim rowNum As Long
    
    ' アクティブなブックを取得
    Set activeBook = ActiveWorkbook
    
    ' GETRISTシートを取得
    On Error Resume Next
    Set getristSheet = activeBook.Sheets("GETRIST")
    On Error GoTo 0
    
    ' GETRISTシートが存在しない場合は新しく作成
    If getristSheet Is Nothing Then
        Set getristSheet = activeBook.Sheets.Add
        getristSheet.Name = "GETRIST"
    End If
    
    ' GETRISTシートのヘッダーを設定
    getristSheet.Range("D1").Value = "シート名"
    getristSheet.Range("E1").Value = "印刷枚数"
    getristSheet.Range("F1").Value = "用紙サイズ"
    getristSheet.Range("G1").Value = "ブック名"
    
    ' GETRISTシートの最終行を取得
    rowNum = getristSheet.Cells(getristSheet.Rows.Count, "D").End(xlUp).Row + 1
    
    ' 各シートの情報をGETRISTシートに貼り付け
    For Each ws In activeBook.Worksheets
        ' シート名をD列に貼り付け
        getristSheet.Cells(rowNum, "D").Value = ws.Name
        
        ' 印刷枚数をE列に貼り付け
        getristSheet.Cells(rowNum, "E").Value = ws.PageSetup.Pages.Count
        
        ' 用紙サイズをF列に貼り付け
        Select Case ws.PageSetup.PaperSize
            Case xlPaperLetter
                getristSheet.Cells(rowNum, "F").Value = "Letter"
            Case xlPaperA4
                getristSheet.Cells(rowNum, "F").Value = "A4"
            ' 他の用紙サイズについても必要なだけCase文を追加
            Case Else
                getristSheet.Cells(rowNum, "F").Value = "Unknown"
        End Select
        
        ' ブック名をG列に貼り付け
        getristSheet.Cells(rowNum, "G").Value = activeBook.Name
        
        ' 次の行に移動
        rowNum = rowNum + 1
    Next ws
    
    MsgBox "情報の貼り付けが完了しました。", vbInformation
End Sub

 

目指せ統計生活。昨日の改良版。

リストアップマクロ

リストアップという名前のシートのVBAを別シートで起動するるとA列にシート名、B列にBOOKの名前を転記してくれます。

Sub リストアップマクロ2()
    Dim destWorkbook As Workbook
    Dim destSheet As Worksheet
    Dim srcWorkbook As Workbook
    Dim srcSheet As Worksheet
    Dim lastRow As Long
    Dim i As Long
    
    ' リストアップされたシート("リストアップ"という名前)を設定
    Set destWorkbook = ThisWorkbook
    Set destSheet = destWorkbook.Sheets("リストアップ")
    
    ' リストアップシートをクリア
    destSheet.Cells.ClearContents
    
    ' ユーザーが選択した複数のブックにアクセスし、情報を転記
    For i = 1 To Application.Workbooks.Count
        Set srcWorkbook = Application.Workbooks(i)
        If srcWorkbook.Name <> destWorkbook.Name Then ' リストアップブック自体を除外
            For Each srcSheet In srcWorkbook.Sheets
                lastRow = destSheet.Cells(destSheet.Rows.Count, "A").End(xlUp).Row + 1
                destSheet.Cells(lastRow, "A").Value = srcSheet.Name
                destSheet.Cells(lastRow, "B").Value = srcWorkbook.Name
            Next srcSheet
        End If
    Next i
    
    ' 完了メッセージ
    MsgBox "情報がリストアップされました。", vbInformation, "完了"
    
End Sub

 

解説はいつかします。

開いたブックに新しいシートを作成し、そのシート名を

シート名一覧を新しいシート上に書き出す。B列に書きます。

Sub B列にシート名を書き出せマクロ()
  Dim i
  For i = 2 To Sheets.Count
    Cells(i, 2) = Sheets(i).Name
  Next i
End Sub

新しいシートを挿入してシート名一覧を書き込むVBA

Sub 新しいシートを挿入してシート名一覧を書き込む() Dim newSheet As Worksheet Set newSheet = ThisWorkbook.Sheets.Add(Before:=ThisWorkbook.Sheets(1)) newSheet.Activate Dim activeSheetName As String activeSheetName = ActiveSheet.Name Dim ws As Worksheet Dim targetColumn As Range Set targetColumn = ThisWorkbook.Sheets(1).Range("B1") For Each ws In ThisWorkbook.Sheets If ws.Name <> activeSheetName Then targetColumn.Value = ws.Name Set targetColumn = targetColumn.Offset(1, 0) End If Next ws End Sub