ボタンをクリックするとクリップボードに文字列がコピーされるhtmlサンプルコード

ボタンを押すと右側の文字列をクリップボードにコピーするコードを作らせました。
ボタンをクリックすると対象の文字列がクリップボードにコピーされ黄色く反応します。
メモ帳にコピペして保存する際に拡張子を.htmlにすると使えます。

"textToCopy = ["のコピーさせたい文字列1などを任意のものにして使ってください。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Copy Text to Clipboard</title>
<style>
    /* テキストがハイライトされるアニメーションの定義 */
    @keyframes textHighlight {
        0% { background-color: transparent; }
        50% { background-color: yellow; }
        100% { background-color: transparent; }
    }

    /* コピー項目を含むdiv要素に適用するスタイル */
    div.copyItem {
        margin-top: 5px; /* 上に10pxのマージンを追加 */
        margin-bottom: 5px; /* 下に10pxのマージンを追加 */
    }

    /* ハイライトアニメーションを適用するクラス */
    .highlight {
        animation: textHighlight 1s forwards;
    }

    button {
        margin-right: 10px; /* ボタンの右側に10pxのマージンを追加 */
    }
</style>
</head>
<body>
    <div id="listContainer"></div>

    <script>
    document.addEventListener('DOMContentLoaded', function() {
        // コピーしたい文字列の配列。ユーザーはこの配列にコピーしたいテキストを追加します。
        const textToCopy = [
            "コピーしたい文字列1", 
            "コピーしたい文字列2", 
            "コピーしたい文字列3"
            // 必要に応じて、この配列に新しい文字列を追加してください。
        ];
        const listContainer = document.getElementById('listContainer');

        // 各テキスト項目に対してコピー機能を持つ要素を作成し、ページに追加します。
        textToCopy.forEach(text => {
            listContainer.appendChild(createCopyItem(text));
        });

        // コピー項目を作成する関数
        function createCopyItem(text) {
            const listItem = document.createElement('div');
            listItem.classList.add('copyItem'); 
            const copyButton = document.createElement('button');
            copyButton.textContent = 'コピー';
            const textSpan = document.createElement('span');
            textSpan.textContent = text;

            // コピー操作を行うイベントリスナー
            copyButton.addEventListener('click', () => {
                copyToClipboard(text, textSpan);
            });

            listItem.appendChild(copyButton);
            listItem.appendChild(textSpan);

            return listItem;
        }

        // テキストをクリップボードにコピーし、アニメーションを適用する関数
        function copyToClipboard(text, textSpan) {
            navigator.clipboard.writeText(text).then(() => {
                // コピー成功時にテキストをハイライト
                textSpan.classList.add('highlight');
                // アニメーション終了後にクラスを削除
                setTimeout(() => textSpan.classList.remove('highlight'), 1000);
            }).catch(err => console.error('Failed to copy text: ', err));
        }
    });
    </script>
</body>
</html>

ウィンドウを並べる

# User32.dll を読み込む
Add-Type @"
    using System;
    using System.Text;
    using System.Runtime.InteropServices;
"@

# GetWindowText 関数の宣言
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
public static extern int GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount);

# SetWindowPos 関数の宣言
[DllImport("user32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags);

# ターゲットのプロセスを取得
$desktopProcess = Get-Process -name "explorer"
$documentsProcess = Get-Process -name "explorer"

# ターゲットのウィンドウハンドルを取得
$desktopHandle = $desktopProcess.MainWindowHandle
$documentsHandle = $documentsProcess.MainWindowHandle

# 画面のサイズを取得
$screenWidth = [System.Windows.Forms.SystemInformation]::VirtualScreen.Width
$screenHeight = [System.Windows.Forms.SystemInformation]::VirtualScreen.Height

# 上半分のウィンドウサイズと位置を計算
$upperHeight = $screenHeight / 2
$upperRect = New-Object System.Drawing.Rectangle(0, 0, $screenWidth, $upperHeight)

# 下半分のウィンドウサイズと位置を計算
$lowerHeight = $screenHeight - $upperHeight
$lowerRect = New-Object System.Drawing.Rectangle(0, $upperHeight, $screenWidth, $lowerHeight)

# 上半分のウィンドウを移動
[User32]::SetWindowPos($desktopHandle, [IntPtr]::Zero, $upperRect.X, $upperRect.Y, $upperRect.Width, $upperRect.Height, 0x0040)

# 下半分のウィンドウを移動
[User32]::SetWindowPos($documentsHandle, [IntPtr]::Zero, $lowerRect.X, $lowerRect.Y, $lowerRect.Width, $lowerRect.Height, 0x0040)

Stable Diffusionで地雷系作成

地雷系のプロンプト

地雷系を作るためにそれっぽいのを作ってみました。

プロンプト 1girl, blunt bangs, black hair, brown eyes, long hair,Drooping eyes,eye bags,put eyeliner on top and bottom,mascara,red eyeshadow,porcelain skin,bright red lip,

 

 



 photo (medium),solo

 

地雷系の服のプロンプト

地雷系の服は下記のプロンプトでそれっぽいのが出来ました。

プロンプト pink chiffon blouse,ruffle decoration,long sleeve,black bow,skirt

先ほどのメイクのプロンプトを組み合わせると下記のような画像が生成されます

服のプロンプトを先にするとなんか安定しました

さらに手を加えて

 

 




 

ワード

Sub FindAndOperateTables()
    Dim doc As Document
    Set doc = ActiveDocument
    
    ' ワード文書内のテーブルをループ処理
    For Each tbl In doc.Tables
        ' テーブル内のテキストを取得
        Dim cellText As String
        cellText = tbl.Range.Text
        
        ' テキストに「うんち」が含まれているか確認
        If InStr(1, cellText, "うんち") > 0 Then
            ' 「うんち」が含まれている場合、ここで必要な操作を実行
            ' たとえば、テーブルを削除する場合は次のコードを使用します。
            tbl.Delete
        End If
    Next tbl
End Sub


powershellでプリントスクリーンで取ったスクショをエクセルに自動で貼り付ける

Add-Type -AssemblyName Microsoft.Office.Interop.Excel

# Excelアプリケーションを起動
$excel = New-Object -ComObject Excel.Application
$workbook = $excel.Workbooks.Add()
$worksheet = $workbook.Worksheets.Item(1)

# 現在の行と列を初期化
$currentRow = 1
$currentColumn = 1

# 無限ループを開始
while ($true) {
    Write-Host "Press ESC to stop..."
    
    # エスケープキーが押されたかどうかをチェック
    if ([System.Console]::KeyAvailable -and ([System.Console]::ReadKey($true).Key -eq [System.ConsoleKey]::Escape)) {
        break
    }
    
    # クリップボードから画像を取得
    $image = Get-Clipboard -Format Image

    # 一時ファイルに画像を保存
    $tempImagePath = "C:\Path\To\Your\Temp\Image.png"
    $image.Save($tempImagePath)
    
    # 画像をエクセルに貼り付け
    $worksheet.Shapes.AddPicture($tempImagePath, $false, $true, $range.Left, $range.Top, -1, -1)
    
    # 現在の行を更新
    $currentRow++
    
    # ファイルを保存
    $workbook.SaveAs("C:\Path\To\Your\Excel\File.xlsx")
    
    # 一時ファイルを削除
    Remove-Item $tempImagePath
    
    # 一定の待機時間(例: 5秒)を設ける
    Start-Sleep -Seconds 5
}

# ループ終了後にアプリケーションを終了
$workbook.Close($false)
$excel.Quit()
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel)

VBAでファイルを開く前にチェック

VBAで別のエクセルブックを開いて値を持ってくるのは便利だけどファイルが存在しなかったり既に開いていると面倒くさい事になります。
なのでファイルを開く前に存在確認と既に開いているかの確認をするVBAをChatGPTくんに作らせました。
ファイルを開く前に実行して変なエラーを出さないようにしてやりましょう

Sub CheckFileExistenceAndOpened()
    Dim filePath As String ' ファイルのパスを格納する変数
    
    ' ファイルのパスを指定します
    filePath = "C:\Path\to\your\file.xlsx"
    
    ' ファイルの存在を確認します
    If Dir(filePath) = "" Then
        ' ファイルが存在しない場合
        MsgBox "ファイルが存在しません。"
        Exit Sub ' プロシージャを終了させます
    End If
    
    Dim fileObject As Object ' ファイルを操作するためのオブジェクト変数
    
    ' ファイルを開く前に既に開かれているか確認します
    On Error Resume Next
    Set fileObject = Workbooks.Open(filePath, ReadOnly:=True)
    If Err.Number = 0 Then
        ' ファイルが開かれていない場合
        fileObject.Close False ' ファイルを閉じます
    Else
        ' ファイルが既に開かれている場合
        MsgBox "ファイルは既に開かれています。"
    End If
    On Error GoTo 0
    
    ' メッセージボックスを表示してプロシージャを終了させます
    MsgBox "処理が完了しました。"
End Sub

VBAでデータ抽出

フィルターをかけて抽出されたものをコピペするVBAをChatGPTくんに作らせました!

Sub フィルタコピーペースト()
    Dim ws As Worksheet ' 処理対象のシートを格納する
    Dim rngData As Range ' データの範囲を格納する
    Dim rngFiltered As Range ' フィルタリングされたデータの範囲を格納する
    Dim rngCopy As Range ' コピーする範囲を格納する
    
    ' フィルタを適用するシートを指定
    Set ws = ThisWorkbook.Worksheets("シート名") ' シート名を適切に変更
    
    ' データの範囲を指定(A列とC列のデータがある範囲)
    Set rngData = ws.Range("A1:C" & ws.Cells(ws.Rows.Count, "A").End(xlUp).Row)
    
    ' フィルタを適用する列を指定(A列をフィルタリング)
    rngData.AutoFilter Field:=1, Criteria1:="フィルタ条件" ' フィルタ条件を適切に変更
    
    ' フィルタリングされた範囲を取得
    On Error Resume Next
    Set rngFiltered = rngData.SpecialCells(xlCellTypeVisible)
    On Error GoTo 0
    
    ' フィルタリングされたデータのC列をコピー
    If Not rngFiltered Is Nothing Then
        Set rngCopy = rngFiltered.Columns(3).Offset(1) ' C列のデータをコピー(カラム名を除外するためOffset(1)を記述)
        rngCopy.Copy ' コピー
    End If
    
    ' フィルタを解除
    ws.AutoFilterMode = False
    
    ' コピー先のセルを指定して貼り付け
    ws.Range("E1").PasteSpecial xlPasteValues ' E1を適切な貼り付け先セルに変更
    
    ' コピー元のデータを削除(必要に応じて)
    rngCopy.ClearContents
    
    ' クリップボードをクリア
    Application.CutCopyMode = False
    
End Sub